;
; +-------------------------------------------------------------------------+
; | This file is generated by The Interactive Disassembler (IDA) |
; | Copyright (c) 2007 by DataRescue sa/nv, <ida@datarescue.com> |
; | Licensed to: Mach EDV Dienstleistungen, Jan Mach, 1 user, adv, 11/2007 |
; +-------------------------------------------------------------------------+
;
; Input MD5 : 9C4696CDB017B906948344388D3753FC
; File Name : C:\Temp\mozOpenDownload\crackme2.exe
; Format : Portable executable for 80386 (PE)
; Imagebase : 400000
; Section 1. (virtual address 00001000)
; Virtual size : 00000574 ( 1396.)
; Section size in file : 00000600 ( 1536.)
; Offset to raw data for section: 00000200
; Flags 60000020: Text Executable Readable
; Alignment : default
;
; Imports from KERNEL32.dll
;
.686p
.mmx
.model flat
; ===========================================================================
; Segment type: Externs
; _idata
; HMODULE __stdcall GetModuleHandleA(LPCSTR lpModuleName)
extrn GetModuleHandleA:dword ; CODE XREF: start+Dp
; DATA XREF: start+Dr
; void __stdcall ExitProcess(UINT uExitCode)
extrn ExitProcess:dword ; CODE XREF: start+1Cp
; DATA XREF: start+1Cr
;
; Imports from USER32.dll
;
; LRESULT __stdcall SendMessageA(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam)
extrn SendMessageA:dword ; CODE XREF: DialogFunc+223p
; DialogFunc+24Cp ...
; BOOL __stdcall EndDialog(HWND hDlg, INT_PTR nResult)
extrn EndDialog:dword ; CODE XREF: DialogFunc+212p
; DATA XREF: DialogFunc+212r
; int __stdcall MessageBoxA(HWND hWnd, LPCSTR lpText, LPCSTR lpCaption, UINT uType)
extrn MessageBoxA:dword ; CODE XREF: DialogFunc+205p
; DATA XREF: DialogFunc+205r
; int __stdcall GetWindowTextA(HWND hWnd, LPSTR lpString, int nMaxCount)
extrn GetWindowTextA:dword ; CODE XREF: DialogFunc+5Ep
; DialogFunc+6Dp
; DATA XREF: ...
; HWND __stdcall GetDlgItem(HWND hDlg, int nIDDlgItem)
extrn GetDlgItem:dword ; CODE XREF: DialogFunc+55p
; DialogFunc+6Ap ...
; INT_PTR __stdcall DialogBoxParamA(HINSTANCE hInstance, LPCSTR lpTemplateName, HWND hWndParent, DLGPROC lpDialogFunc, LPARAM dwInitParam)
extrn DialogBoxParamA:dword ; CODE XREF: start+14p
; DATA XREF: start+14r
; ===========================================================================
; Segment type: Pure code
; Segment permissions: Read/Execute
_text segment para public 'CODE' use32
assume cs:_text
;org 401024h
assume es:nothing, ss:nothing, ds:_text, fs:nothing, gs:nothing
align 8
byte_401028 db 43h ; DATA XREF: DialogFunc:loc_40133Br
aDfhkmpqtvx2346 db 'DFHKMPQTVX23468',0
align 4
; char Text[]
Text db 'Wrong Key!',0 ; DATA XREF: DialogFunc+1FDo
align 4
; char Caption[]
Caption db 'Try again',0 ; DATA XREF: DialogFunc+1F8o
align 4
aRegistered db 'Registered!',0 ; DATA XREF: DialogFunc+1EFo
aCongratulation db 'Congratulations',0 ; DATA XREF: DialogFunc+1EAo
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_401070 proc near ; CODE XREF: sub_401120+Fp
; sub_401120+1Fp ...
var_8 = dword ptr -8
var_4 = dword ptr -4
push ebp
mov ebp, esp
push ecx
push ecx
push ebx
push esi
movzx eax, cx
movzx esi, dx
shr edx, 10h
shr ecx, 10h
push edi
mov edi, eax
mov ebx, edx
imul edx, eax
imul edi, esi
mov eax, ecx
imul ecx, esi
imul eax, ebx
mov ebx, eax
movzx eax, cx
mov esi, edi
shr esi, 10h
add esi, eax
movzx eax, dx
add esi, eax
mov eax, esi
shr eax, 10h
shr ecx, 10h
add eax, ecx
movzx ecx, bx
shr edx, 10h
add eax, edx
add eax, ecx
mov word ptr [ebp+var_4], ax
movzx ecx, di
shr eax, 10h
shr ebx, 10h
add eax, ebx
mov [ebp+var_8], ecx
pop edi
mov word ptr [ebp+var_8+2], si
mov word ptr [ebp+var_4+2], ax
mov eax, [ebp+var_8]
mov edx, [ebp+var_4]
pop esi
pop ebx
leave
retn
sub_401070 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4010E0 proc near ; CODE XREF: sub_401120+B5p
; sub_401120+BCp ...
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
mov eax, [ebp+arg_0]
add eax, [ebp+arg_8]
mov ecx, [ebp+arg_C]
mov edx, [ebp+arg_4]
push esi
adc edx, ecx
push edi
xor esi, esi
xor edi, edi
add ecx, [ebp+arg_4]
adc esi, edi
xor ecx, ecx
pop edi
or ecx, esi
pop esi
jz short loc_40110A
add eax, 3Bh
adc edx, 0
loc_40110A: ; CODE XREF: sub_4010E0+22j
cmp edx, 0FFFFFFFFh
jb short loc_40111C
ja short loc_401116
cmp eax, 0FFFFFFC5h
jb short loc_40111C
loc_401116: ; CODE XREF: sub_4010E0+2Fj
add eax, 3Bh
adc edx, 0
loc_40111C: ; CODE XREF: sub_4010E0+2Dj
; sub_4010E0+34j
pop ebp
retn 10h
sub_4010E0 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_401120 proc near ; CODE XREF: DialogFunc+197p
; DialogFunc+19Ep ...
var_18 = dword ptr -18h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
sub esp, 18h
mov edx, [ebp+arg_8]
mov ecx, [ebp+arg_0]
push ebx
push esi
push edi
call sub_401070
mov ecx, [ebp+arg_0]
mov edi, edx
mov edx, [ebp+arg_C]
mov [ebp+var_18], eax
call sub_401070
mov ecx, [ebp+arg_4]
mov ebx, edx
mov edx, [ebp+arg_8]
mov [ebp+var_8], eax
call sub_401070
mov ecx, [ebp+arg_4]
mov [ebp+var_C], edx
mov edx, [ebp+arg_C]
mov esi, eax
call sub_401070
xor ecx, ecx
mov [ebp+arg_8], eax
xor eax, eax
add esi, [ebp+var_8]
push 3Bh
adc ecx, eax
add esi, edi
adc ecx, eax
mov [ebp+arg_0], esi
xor esi, esi
add ecx, [ebp+arg_8]
adc esi, eax
add ecx, [ebp+var_C]
adc esi, eax
add ecx, ebx
adc esi, eax
lea eax, [esi+edx]
cmp eax, 0FFFFFFFFh
mov edi, eax
pop esi
jb short loc_4011A2
ja short loc_40119B
cmp ecx, 0FFFFFFC5h
jb short loc_4011A2
loc_40119B: ; CODE XREF: sub_401120+74j
add ecx, esi
adc eax, 0
mov edi, eax
loc_4011A2: ; CODE XREF: sub_401120+72j
; sub_401120+79j
mov edx, esi
call sub_401070
mov [ebp+arg_C], edx
mov edx, esi
mov ecx, edi
mov ebx, eax
call sub_401070
xor ecx, ecx
xor edi, edi
add eax, [ebp+arg_C]
adc ecx, edi
add ecx, edx
mov edx, esi
mov edi, eax
call sub_401070
push edx
push eax
push edi
push ebx
push [ebp+arg_0]
push [ebp+var_18]
call sub_4010E0
push edx
push eax
call sub_4010E0
pop edi
pop esi
pop ebx
leave
retn 10h
sub_401120 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame fpd=68h
; INT_PTR __stdcall DialogFunc(HWND, UINT, WPARAM, LPARAM)
DialogFunc proc near ; DATA XREF: start+2o
var_8B8 = dword ptr -8B8h
var_8B4 = dword ptr -8B4h
String = byte ptr -0B8h
var_64 = byte ptr -64h
var_10 = dword ptr -10h
var_8 = dword ptr -8
var_4 = dword ptr -4
hDlg = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
lea ebp, [esp-68h]
mov eax, [ebp+68h+arg_4]
sub esp, 8B8h
sub eax, 110h
push ebx
push esi
push edi
jz loc_401413
dec eax
jnz short loc_401222
movzx eax, word ptr [ebp+68h+arg_8]
dec eax
jz loc_401402
dec eax
jz loc_4013F5
mov ebx, 3E8h
sub eax, ebx
jz short loc_401229
loc_401222: ; CODE XREF: DialogFunc+1Dj
xor eax, eax
jmp loc_40144B
; ---------------------------------------------------------------------------
loc_401229: ; CODE XREF: DialogFunc+38j
mov esi, GetDlgItem
push 51h ; nMaxCount
lea eax, [ebp+68h+String]
push eax ; lpString
push 3E9h ; nIDDlgItem
push [ebp+68h+hDlg] ; hDlg
call esi ; GetDlgItem
mov edi, GetWindowTextA
push eax ; hWnd
call edi ; GetWindowTextA
push 51h ; nMaxCount
lea eax, [ebp+68h+var_64]
push eax ; lpString
push ebx ; nIDDlgItem
push [ebp+68h+hDlg] ; hDlg
call esi ; GetDlgItem
push eax ; hWnd
call edi ; GetWindowTextA
cmp [ebp+68h+String], 0
jz loc_401448
cmp [ebp+68h+var_64], 0
jz loc_401448
or esi, 0FFFFFFFFh
lea eax, [ebp+68h+String]
mov [ebp+68h+arg_4], eax
mov edi, esi
xor ebx, ebx
loc_401278: ; CODE XREF: DialogFunc+E3j
mov eax, ebx
cdq
mov [ebp+68h+var_4], edx
mov [ebp+68h+arg_8], 8
loc_401285: ; CODE XREF: DialogFunc+CAj
mov ecx, eax
and ecx, 1
xor edx, edx
or ecx, edx
mov ecx, [ebp+68h+var_4]
jz short loc_4012A6
shrd eax, ecx, 1
shr ecx, 1
xor eax, 0AC4BC9B5h
xor ecx, 95AC9329h
jmp short loc_4012AC
; ---------------------------------------------------------------------------
loc_4012A6: ; CODE XREF: DialogFunc+A9j
shrd eax, ecx, 1
shr ecx, 1
loc_4012AC: ; CODE XREF: DialogFunc+BCj
dec [ebp+68h+arg_8]
mov [ebp+68h+var_4], ecx
jnz short loc_401285
mov [ebp+ebx*8+68h+var_8B8], eax
mov eax, ecx
mov [ebp+ebx*8+68h+var_8B4], eax
inc ebx
cmp ebx, 100h
jl short loc_401278
movzx eax, [ebp+68h+String]
loc_4012D1: ; CODE XREF: DialogFunc+10Fj
xor eax, edi
shrd edi, esi, 8
and eax, 0FFh
xor edi, [ebp+eax*8+68h+var_8B8]
shr esi, 8
xor esi, [ebp+eax*8+68h+var_8B4]
inc [ebp+68h+arg_4]
mov eax, [ebp+68h+arg_4]
mov al, [eax]
test al, al
jnz short loc_4012D1
cmp esi, 0FFFFFFFFh
mov [ebp+68h+var_8], edi
mov [ebp+68h+var_4], esi
jb short loc_401317
ja short loc_40130B
cmp edi, 0FFFFFFC5h
jb short loc_401317
loc_40130B: ; CODE XREF: DialogFunc+11Cj
add edi, 3Bh
adc esi, 0
mov [ebp+68h+var_8], edi
mov [ebp+68h+var_4], esi
loc_401317: ; CODE XREF: DialogFunc+11Aj
; DialogFunc+121j
lea eax, [ebp+68h+var_64]
lea edx, [eax+1]
loc_40131D: ; CODE XREF: DialogFunc+13Aj
mov cl, [eax]
inc eax
test cl, cl
jnz short loc_40131D
sub eax, edx
cmp eax, 13h
jnz loc_4013DE
mov dl, [ebp+68h+var_64]
xor eax, eax
lea esi, [ebp+68h+var_64]
xor ecx, ecx
loc_401339: ; CODE XREF: DialogFunc+181j
xor ebx, ebx
loc_40133B: ; CODE XREF: DialogFunc+15Fj
cmp dl, byte_401028[ebx]
jz short loc_40134B
inc ebx
cmp ebx, 11h
jb short loc_40133B
jmp short loc_401364
; ---------------------------------------------------------------------------
loc_40134B: ; CODE XREF: DialogFunc+159j
push 10h
pop edx
mul edx
mov [ebp+68h+var_10], eax
mov edi, edx
shl ecx, 4
mov eax, ebx
cdq
add edi, ecx
add eax, [ebp+68h+var_10]
adc edx, edi
mov ecx, edx
loc_401364: ; CODE XREF: DialogFunc+161j
inc esi
mov dl, [esi]
test dl, dl
jnz short loc_401339
mov esi, ecx
and esi, 80000000h
xor edx, edx
or edx, esi
jz short loc_4013DE
push ecx
push eax
push ecx
push eax
push ecx
push eax
call sub_401120
push edx
push eax
call sub_401120
push 95AC9329h
push 0AC4BC9B5h
push [ebp+68h+var_4]
mov esi, eax
push [ebp+68h+var_8]
mov edi, edx
call sub_401120
push edx
push eax
push edi
push esi
push edi
push esi
call sub_401120
push edx
push eax
call sub_4010E0
mov ecx, eax
or ecx, edx
jz short loc_4013D0
push 0FFFFFFC5h
pop ecx
sub ecx, [ebp+68h+var_8]
push 0FFFFFFFFh
pop esi
sbb esi, [ebp+68h+var_4]
cmp eax, ecx
jnz short loc_4013DE
cmp edx, esi
jnz short loc_4013DE
loc_4013D0: ; CODE XREF: DialogFunc+1D2j
push 40h
push offset aCongratulation ; "Congratulations"
push offset aRegistered ; "Registered!"
jmp short loc_4013EA
; ---------------------------------------------------------------------------
loc_4013DE: ; CODE XREF: DialogFunc+141j
; DialogFunc+18Fj ...
push 10h ; uType
push offset Caption ; "Try again"
push offset Text ; "Wrong Key!"
loc_4013EA: ; CODE XREF: DialogFunc+1F4j
push [ebp+68h+hDlg] ; hWnd
call MessageBoxA
jmp short loc_401448
; ---------------------------------------------------------------------------
loc_4013F5: ; CODE XREF: DialogFunc+2Bj
push 2 ; nResult
push [ebp+68h+hDlg] ; hDlg
call EndDialog
jmp short loc_401448
; ---------------------------------------------------------------------------
loc_401402: ; CODE XREF: DialogFunc+24j
push 0 ; lParam
push 0 ; wParam
push 28h ; Msg
push [ebp+68h+hDlg] ; hWnd
call SendMessageA
jmp short loc_401448
; ---------------------------------------------------------------------------
loc_401413: ; CODE XREF: DialogFunc+16j
mov esi, GetDlgItem
push 0 ; lParam
push 50h ; wParam
mov ebx, 0C5h
push ebx ; Msg
push 3E9h ; nIDDlgItem
push [ebp+68h+hDlg] ; hDlg
call esi ; GetDlgItem
mov edi, SendMessageA
push eax ; hWnd
call edi ; SendMessageA
push 0 ; lParam
push 50h ; wParam
push ebx ; Msg
push 3E8h ; nIDDlgItem
push [ebp+68h+hDlg] ; hDlg
call esi ; GetDlgItem
push eax ; hWnd
call edi ; SendMessageA
loc_401448: ; CODE XREF: DialogFunc+73j
; DialogFunc+7Dj ...
xor eax, eax
inc eax
loc_40144B: ; CODE XREF: DialogFunc+3Cj
pop edi
pop esi
pop ebx
add ebp, 68h
leave
retn 10h
DialogFunc endp
; =============== S U B R O U T I N E =======================================
; Attributes: noreturn
public start
start proc near
push 0 ; dwInitParam
push offset DialogFunc ; lpDialogFunc
push 0 ; hWndParent
push 67h ; lpTemplateName
push 0 ; lpModuleName
call GetModuleHandleA
push eax ; hInstance
call DialogBoxParamA
push 0 ; uExitCode
call ExitProcess
start endp
; ---------------------------------------------------------------------------
align 4
dd 14B4h, 2 dup(0)
dd 14FEh, 1000h, 14C0h, 2 dup(0)
dd 1568h, 100Ch, 5 dup(0)
dd 14EAh, 14DCh, 0
dd 150Ch, 151Ch, 1528h, 1536h, 1548h, 1556h, 0
dd 784500B9h, 72507469h, 7365636Fh, 17F0073h, 4D746547h
dd 6C75646Fh, 6E614865h, 41656C64h, 454B0000h, 4C454E52h
dd 642E3233h, 6C6Ch, 6553023Bh, 654D646Eh, 67617373h, 4165h
dd 6E4500C6h, 61694464h, 676F6Ch, 654D01DFh, 67617373h
dd 786F4265h, 1770041h, 57746547h, 6F646E69h, 78655477h
dd 4174h, 65470111h, 676C4474h, 6D657449h, 9E0000h, 6C616944h
dd 6F42676Fh, 72615078h, 416D61h, 52455355h, 642E3233h
dd 6C6Ch, 23h dup(0)
_text ends
; Section 2. (virtual address 00002000)
; Virtual size : 00000190 ( 400.)
; Section size in file : 00000200 ( 512.)
; Offset to raw data for section: 00000800
; Flags 40000040: Data Readable
; Alignment : default
; ===========================================================================
; Segment type: Pure data
; Segment permissions: Read
_rsrc segment para public 'DATA' use32
assume cs:_rsrc
;org 402000h
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 1
db 0
db 5
db 0
db 0
db 0
db 18h
db 0
db 0
db 80h ;
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 1
db 0
db 67h ; g
db 0
db 0
db 0
db 30h ; 0
db 0
db 0
db 80h ;
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 1
db 0
db 9
db 4
db 0
db 0
db 48h ; H
db 0
db 0
db 0
db 60h ; `
db 20h
db 0
db 0
db 30h ; 0
db 1
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 1
db 0
db 0FFh
db 0FFh
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 40h ; @
db 0
db 0C8h ; ?
db 90h ; ?
db 5
db 0
db 16h
db 0
db 11h
db 0
db 72h ; r
db 0
db 5Ch ; \
db 0
db 0
db 0
db 0
db 0
db 63h ; c
db 0
db 72h ; r
db 0
db 61h ; a
db 0
db 63h ; c
db 0
db 6Bh ; k
db 0
db 6Dh ; m
db 0
db 65h ; e
db 0
db 32h ; 2
db 0
db 0
db 0
db 9
db 0
db 90h ; ?
db 1
db 0
db 0
db 56h ; V
db 0
db 65h ; e
db 0
db 72h ; r
db 0
db 64h ; d
db 0
db 61h ; a
db 0
db 6Eh ; n
db 0
db 61h ; a
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 2
db 0
db 80h ;
db 0
db 1
db 50h ; P
db 4
db 0
db 14h
db 0
db 69h ; i
db 0
db 0Ch
db 0
db 0E9h ; ?
db 3
db 0
db 0
db 0FFh
db 0FFh
db 81h ; ?
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 2
db 0
db 80h ;
db 0
db 1
db 50h ; P
db 4
db 0
db 34h ; 4
db 0
db 69h ; i
db 0
db 0Ch
db 0
db 0E8h ; ?
db 3
db 0
db 0
db 0FFh
db 0FFh
db 81h ; ?
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 1
db 50h ; P
db 23h ; #
db 0
db 48h ; H
db 0
db 2Ch ; ,
db 0
db 0Fh
db 0
db 0EAh ; ?
db 3
db 0
db 0
db 0FFh
db 0FFh
db 80h ;
db 0
db 26h ; &
db 0
db 52h ; R
db 0
db 65h ; e
db 0
db 67h ; g
db 0
db 69h ; i
db 0
db 73h ; s
db 0
db 74h ; t
db 0
db 65h ; e
db 0
db 72h ; r
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 2
db 50h ; P
db 4
db 0
db 7
db 0
db 19h
db 0
db 8
db 0
db 0FFh
db 0FFh
db 0FFh
db 0FFh
db 0FFh
db 0FFh
db 82h ; ?
db 0
db 4Eh ; N
db 0
db 61h ; a
db 0
db 6Dh ; m
db 0
db 65h ; e
db 0
db 3Ah ; :
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 2
db 50h ; P
db 4
db 0
db 28h ; (
db 0
db 14h
db 0
db 8
db 0
db 0FFh
db 0FFh
db 0FFh
db 0FFh
db 0FFh
db 0FFh
db 82h ; ?
db 0
db 4Bh ; K
db 0
db 65h ; e
db 0
db 79h ; y
db 0
db 3Ah ; :
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 2
db 50h ; P
db 4
db 0
db 28h ; (
db 0
db 14h
db 0
db 8
db 0
db 0FFh
db 0FFh
db 0FFh
db 0FFh
db 0FFh
db 0FFh
db 82h ; ?
db 0
db 4Bh ; K
db 0
db 65h ; e
db 0
db 79h ; y
db 0
db 3Ah ; :
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
_rsrc ends
end start