Function at 0x405760
Capabilities:
Check for time delay via gettickcount
Check os version
Get common file path
Read .ini file
Read file on windows
Resolve function by parsing pe exports
Set current directory
Write file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xdf4
mov eax, dword [0x4190cc]
xor eax, esp
mov dword [esp + 0xdf0], eax
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
mov edi, dword [ebp + 0x10]
push 7
xor ebx, ebx
push 0x415f44
mov dword [esp + 0x58], esi
mov dword [esp + 0x70], edi
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x18], 0x80
mov dword [esp + 0x4c], ebx
call fcn.00404560
push 2
push str.nodbupdate
call fcn.00404560
push 1
push str.output
call fcn.00404560
push 6
push 0x415f2c
call fcn.00404560
push 3
push str.doall
call fcn.00404560
push 4
push str.create
call fcn.00404560
push 5
push str.type
call fcn.00404560
push edi
call fcn.00401610
push 0x94
push ebx
push 0x423c00
mov dword [esp + 0x30], eax
mov dword [0x41ba2c], 0x415f04
mov dword [0x41b488], esi
call fcn.004094e0
add esp, 0xc
push 0x423c00
mov dword [0x423c00], 0x94
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
mov eax, dword [0x423c10]
cmp eax, 1
jne 0x405853
mov eax, dword [0x423c04]
cmp eax, 4
ja 0x405864
jne 0x40586c
cmp dword [0x423c08], ebx
jbe 0x40586c
jmp 0x405864
cmp eax, 2
jne 0x40586c
mov eax, dword [0x423c04]
cmp eax, 5
ja 0x405864
jne 0x40586c
mov dword [esp + 0x44], 1
push 0x238
lea eax, [esp + 0x12c]
push ebx
push eax
mov dword [0x41b908], ebx
mov dword [0x41b904], 1
mov dword [esp + 0x6c], ebx
mov dword [0x41b7c8], ebx
mov dword [esp + 0x70], ebx
mov byte [0x41b800], bl
call fcn.004094e0
add esp, 0xc
push 0x104
push 0x41ba40
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
push 0x5c
push 0x41ba40
call fcn.00409590
add esp, 8
cmp eax, ebx
jne 0x4058cf
mov eax, 0x41ba40
push 0x2e
push eax
call fcn.004095d0
add esp, 8
cmp eax, ebx
je 0x4058ef
mov ecx, dword [str..ini]
mov dword [eax], ecx
mov dl, byte [0x415f00]
mov byte [eax + 4], dl
mov esi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
push 0x41ba40
push 0x100
push 0x41b6c0
push 0x4157a0
push str.Signature
push str.QuickSFV
call esi
cmp byte [0x41b6c0], bl
jne 0x40595b
lea eax, [esp + 0x38]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemTimeAsFileTime]
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x38]
push 0x10
push 0x41b6c0
push ecx
push edx
call fcn.00409eef
add esp, 0x10
push 0x41ba40
push 0x41b6c0
push str.Signature
push str.QuickSFV
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
push 0x41ba40
push 0x200
lea eax, [esp + 0x7f8]
push eax
push 0x415950
push str.UpdateDB
push str.QuickSFV
call esi
cmp byte [esp + 0x7f0], 0x30
je 0x4059d3
lea ecx, [esp + 0x7f0]
push 0x415eec
push ecx
call fcn.0040ed36
add esp, 8
test eax, eax
je 0x4059d3
lea edx, [esp + 0x7f0]
push str.false
push edx
call fcn.0040ed36
add esp, 8
test eax, eax
je 0x4059d3
lea eax, [esp + 0x7f0]
push 0x415ee0
push eax
call fcn.0040ed36
add esp, 8
test eax, eax
jne 0x4059d9
mov dword [0x41b904], ebx
push 0x41ba40
push 0x200
lea ecx, [esp + 0x7f8]
push ecx
push 0x415950
push str.ShowMenu
xor edi, edi
push str.QuickSFV
mov dword [0x41b480], edi
call esi
mov bl, 0x31
cmp byte [esp + 0x7f0], bl
je 0x405a5a
lea edx, [esp + 0x7f0]
push 0x415ed0
push edx
call fcn.0040ed36
add esp, 8
test eax, eax
je 0x405a5a
lea eax, [esp + 0x7f0]
push str.true
push eax
call fcn.0040ed36
add esp, 8
test eax, eax
je 0x405a5a
lea ecx, [esp + 0x7f0]
push 0x415ec4
push ecx
call fcn.0040ed36
add esp, 8
test eax, eax
jne 0x405a64
mov dword [0x41b480], 1
push 0x41ba40
push 0x200
lea edx, [esp + 0x7f8]
push edx
push 0x41594c
push str.AddTag
push str.QuickSFV
call esi
cmp byte [esp + 0x7f0], bl
je 0x405adb
lea eax, [esp + 0x7f0]
push 0x415ed0
push eax
call fcn.0040ed36
add esp, 8
test eax, eax
je 0x405adb
lea ecx, [esp + 0x7f0]
push str.true
push ecx
call fcn.0040ed36
add esp, 8
test eax, eax
je 0x405adb
lea edx, [esp + 0x7f0]
push 0x415ec4
push edx
call fcn.0040ed36
add esp, 8
test eax, eax
jne 0x405ae3
mov dword [esp + 0x64], 1
push 0x41ba40
push 0x200
lea eax, [esp + 0x7f8]
push eax
push 0x4157a0
push str.ExpireTime
push str.QuickSFV
call esi
cmp byte [esp + 0x7f0], 0
je 0x405bd6
mov dword [esp + 0xc], edi
lea esi, [esp + 0x7f0]
nop
mov al, byte [esi]
test al, al
je 0x405b3e
movsx ecx, al
push ecx
call fcn.00409156
add esp, 4
test eax, eax
jne 0x405b3e
mov al, byte [esi + 1]
inc esi
test al, al
jne 0x405b26
mov al, byte [esi]
xor edi, edi
test al, al
je 0x405bc1
movsx edx, al
push edx
call fcn.00409156
add esp, 4
test eax, eax
je 0x405b69
movsx ecx, byte [esi]
lea eax, [edi + edi*4]
inc esi
lea edi, [ecx + eax*2 - 0x30]
mov al, byte [esi]
test al, al
jne 0x405b46
jmp 0x405bc1
mov al, byte [esi]
test al, al
je 0x405bc1
movsx edx, al
push edx
call fcn.004098bc
add eax, 0xffffff9c
add esp, 4
cmp eax, 0xf
ja case.0x405b8a.101
movzx eax, byte [eax + 0x407e3c]
jmp dword [eax*4 + 0x407e28]
mov edx, dword [esp + 0xc]
mov ecx, edi
shl ecx, 4
sub ecx, edi
lea eax, [edx + ecx*4]
mov dword [esp + 0xc], eax
jmp case.0x405b8a.101
imul edi, edi, 0xe10
jmp case.0x405b8a.115
imul edi, edi, 0x15180
add dword [esp + 0xc], edi
inc esi
cmp byte [esi], 0
jne 0x405b20
mov eax, dword [esp + 0xc]
mov ecx, 0x989680
mul ecx
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], edx
jmp 0x405bde
mov dword [esp + 0x58], edi
mov dword [esp + 0x5c], edi
mov edi, dword [esp + 0x24]
mov esi, 1
jmp 0x405bf0
mov dword [0x41b6a0], 0
mov byte [0x41b920], 0
test edi, edi
je 0x405e52
push 0
push edi
call fcn.004015f0
mov ebx, eax
test ebx, ebx
je 0x405f19
jmp 0x405c20
mov eax, dword [ebx + 4]
lea edx, [esp + 0x54]
push edx
push eax
call fcn.00404640
test eax, eax
je 0x405d2d
mov eax, dword [esp + 0x54]
dec eax
cmp eax, 4
ja case.default.0x405c44
jmp dword [eax*4 + 0x407e4c]
mov eax, dword [ebx + 8]
test eax, eax
je case.default.0x405c44
push 0x104
push eax
lea ecx, [esp + 0x9f8]
push ecx
call fcn.00409c30
mov byte [esp + 0xaff], 0
mov dword [0x41b908], esi
jmp 0x405e39
mov dword [0x41b904], 0
jmp case.default.0x405c44
mov dword [0x41b7c8], esi
jmp case.default.0x405c44
mov eax, dword [ebx + 8]
mov dword [esp + 0x60], esi
test eax, eax
jne 0x405e22
mov edx, dword [str._.sfv]
mov ax, word [0x415eac]
push 0x30
push str.Error
mov dword [0x41b920], edx
mov word [0x41b924], ax
push str.No_name_specified_for_new_.sfv_file
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
push edi
call fcn.004015b0
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xdf0]
xor ecx, esp
call fcn.00408b84
mov esp, ebp
pop ebp
ret 0x10
cmp dword [ebx + 8], 0
je case.default.0x405c44
mov eax, dword [ebx + 4]
lea edx, [esp + 0x54]
push edx
push eax
call fcn.00404640
test eax, eax
je 0x405d1f
mov eax, dword [esp + 0x54]
cmp eax, 6
jb 0x405d1f
cmp eax, 7
jbe case.default.0x405c44
push 0x30
push str.Error
push str.Invalid_type_specified_for_creation
jmp 0x405cc9
mov ecx, dword [ebx + 4]
push 0x200
push ecx
lea edx, [esp + 0x130]
push edx
call fcn.00409c30
mov byte [esp + 0x333], 0
mov eax, dword [ebx + 8]
add esp, 0xc
test eax, eax
je 0x405ddf
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x405d60
sub eax, edx
mov edx, eax
lea eax, [esp + 0x128]
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x405d75
sub eax, esi
mov ecx, 0x1fe
sub ecx, eax
cmp edx, ecx
jae 0x405dda
lea edi, [esp + 0x128]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x405d91
mov dx, word [0x4157d4]
mov word [edi], dx
mov eax, dword [ebx + 8]
mov ecx, eax
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x405da8
lea edi, [esp + 0x128]
sub eax, ecx
mov esi, ecx
dec edi
jmp 0x405dc0
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x405dc0
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [esp + 0x24]
mov esi, 1
lea eax, [esp + 0x128]
push eax
call fcn.004054f0
test eax, eax
je case.default.0x405c44
cmp dword [esp + 0x60], 0
je 0x405e1b
push 0x100
lea ecx, [esp + 0x12c]
push ecx
lea edx, [esp + 0xd00]
push edx
call fcn.00409c30
mov byte [esp + 0xe03], 0
jmp 0x405e39
lea eax, [esp + 0x128]
push 0x104
push eax
push 0x41b920
call fcn.00409c30
mov byte [0x41ba23], 0
add esp, 0xc
push ebx
push edi
call fcn.004015f0
mov ebx, eax
test ebx, ebx
jne 0x405c20
jmp 0x405f19
push 0x58
lea ecx, [esp + 0xd4]
push 0
push ecx
mov byte [0x41b800], 0
mov byte [0x41b280], 0
call fcn.004094e0
add esp, 0xc
mov dword [esp + 0xd0], 0x58
call dword [sym.imp.USER32.dll_GetDesktopWindow]
lea edx, [esp + 0xd0]
push edx
mov dword [esp + 0xd8], eax
mov dword [esp + 0xe0], str.File_Verification_Database
mov dword [esp + 0xf0], 0x41b920
mov dword [esp + 0xf4], 0x103
mov dword [esp + 0x108], 0x1000
call dword [sym.imp.COMDLG32.dll_GetOpenFileNameA]
test eax, eax
je 0x407dff
push 0x5c
push 0x41b920
call fcn.00409590
add esp, 8
test eax, eax
jne 0x405ee6
mov eax, 0x41b920
push 0x2e
push eax
call fcn.004095d0
add esp, 8
test eax, eax
jne 0x405f19
mov eax, 0x41b920
dec eax
jmp 0x405f00
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x405f00
mov ecx, dword [str..sfv]
mov dl, byte [0x415e00]
mov dword [eax], ecx
mov byte [eax + 4], dl
mov eax, 0x41b920
sub eax, 4
mov dword [esp + 0x70], eax
jmp 0x405f30
mov al, byte [0x41b800]
mov dword [0x41b7c4], 0
test al, al
je 0x405fb0
lea eax, [esp + 0x7f0]
push eax
push 0x200
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
lea eax, [esp + 0x7f0]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x405f60
sub eax, edx
cmp byte [esp + eax + 0x7ef], 0x5c
je 0x405f92
lea edi, [esp + 0x7f0]
dec edi
jmp 0x405f80
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x405f80
mov cx, word [0x415854]
mov word [edi], cx
lea edx, [esp + 0x7f0]
push 0x41b800
push edx
call fcn.0040ed36
add esp, 8
test eax, eax
jne 0x405fb0
mov byte [0x41b800], al
xor edi, edi
mov eax, 0x41b920
mov dword [0x423b60], edi
mov dword [0x41b6a0], edi
mov dword [0x41b7dc], edi
mov dword [0x41b7c0], edi
mov dword [0x41b484], edi
mov dword [0x41ba30], edi
mov dword [0x41b7e0], edi
mov dword [0x41bb44], edi
mov dword [0x423b64], edi
mov dword [0x41b7d4], edi
mov dword [esp + 0x358], edi
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x406000
mov esi, dword [esp + 0x70]
sub eax, edx
push 4
add eax, esi
push str..ckz
push eax
call fcn.00411fbc
add esp, 0xc
test eax, eax
jne 0x406032
mov dword [0x41bb44], 1
jmp 0x40612c
mov eax, 0x41b920
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x406040
sub eax, edx
push 4
lea ecx, [esi + eax]
push str..crc
push ecx
call fcn.00411fbc
add esp, 0xc
test eax, eax
jne 0x40606f
mov dword [0x423b64], 1
jmp 0x40612c
mov eax, 0x41b920
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x406077
sub eax, edx
push 4
lea edx, [esi + eax]
push str..csv
push edx
call fcn.00411fbc
add esp, 0xc
test eax, eax
jne 0x4060a6
mov dword [0x41b7e0], 1
jmp 0x40612c
mov eax, 0x41b920
lea edx, [eax + 1]
mov edi, edi
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4060b0
sub eax, edx
push 4
add eax, esi
push str..par
push eax
call fcn.00411fbc
add esp, 0xc
test eax, eax
jne 0x4060e2
mov eax, 1
mov dword [0x41ba30], eax
mov dword [esp + 0x358], eax
jmp 0x40612c
mov eax, 0x41b920
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4060f0
sub eax, edx
push 4
add esi, eax
push str..md5
push esi
call fcn.00411fbc
add esp, 0xc
test eax, eax
jne 0x406122
mov eax, 1
mov dword [0x41b7dc], eax
mov dword [esp + 0x358], eax
jmp 0x40612c
mov dword [0x41b7d4], 1
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push edi
push 0x8000000
push 3
push edi
push 1
push 0x80000000
push 0x41b920
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov ebx, eax
mov dword [esp + 0x6c], ebx
cmp ebx, 0xffffffff
je 0x407dbe
xor esi, esi
mov dword [0x41b7d0], 0xffffffff
mov dword [esp + 0x20], esi
cmp dword [0x423b64], edi
je 0x406341
push edi
lea ecx, [esp + 0x10]
push ecx
push 0x8000
push 0x41bb60
push ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
cmp eax, 1
jne 0x406322
mov eax, dword [esp + 0xc]
cmp eax, edi
je 0x406322
push str.jpeg
push eax
push 0x41bb60
call fcn.00413ee0
test eax, eax
je 0x4062c9
mov edx, dword [esp + 0xc]
push str.Sheriff
push edx
push 0x41bb60
call fcn.00413ee0
test eax, eax
je 0x4062c9
push edi
push edi
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
push 0x200
lea eax, [esp + 0x7f4]
push eax
push ebx
call fcn.00404770
test eax, eax
jle 0x4062b4
lea ecx, [ecx]
cmp byte [esp + 0x7f0], 0x2d
je 0x406226
push 0x200
lea ecx, [esp + 0x7f4]
push ecx
push ebx
call fcn.00404770
test eax, eax
jg 0x406200
jmp 0x4062b4
xor eax, eax
jmp 0x406230
mov cl, byte [esp + eax + 0x7f0]
mov byte [eax + 0x41b4a0], cl
inc eax
test cl, cl
jne 0x406230
lea edx, [esp + 0x7f0]
push 0x20
push edx
call fcn.004095d0
add esp, 8
cmp byte [eax], 0x20
jne 0x406266
lea esp, [esp]
inc eax
cmp byte [eax], 0x20
je 0x406260
mov ecx, eax
lea edx, [esp + 0x7f0]
sub ecx, edx
push 0x20
push eax
mov dword [0x41b6a4], ecx
call fcn.004095d0
add esp, 8
cmp byte [eax], 0x20
jne 0x40628d
inc eax
cmp byte [eax], 0x20
je 0x406287
push 0x20
push eax
call fcn.004095d0
add esp, 8
cmp byte [eax], 0x20
jne 0x4062a6
lea ecx, [ecx]
inc eax
cmp byte [eax], 0x20
je 0x4062a0
lea ecx, [esp + 0x7f0]
sub eax, ecx
mov dword [0x423be0], eax
mov dword [0x41b7c0], 1
mov dword [0x423b64], edi
jmp 0x4064b8
mov edx, dword [esp + 0xc]
push str.CRC_Values_for
push edx
push 0x41bb60
call fcn.00413ee0
test eax, eax
je 0x406322
push edi
push edi
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
push 0x200
lea eax, [esp + 0x7f4]
push eax
push ebx
call fcn.00404770
push 1
push edi
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov dword [esp + 0x74], eax
mov dword [0x41b484], 1
mov dword [0x423b64], edi
jmp 0x4064b8
cmp dword [0x423b64], edi
je 0x4064b8
push edi
push edi
push 0x80
push ebx
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
jmp 0x4064b8
cmp dword [0x41bb44], edi
je 0x406394
push 0x200
lea ecx, [esp + 0x7f4]
push ecx
push ebx
call fcn.00404770
test eax, eax
jg 0x406369
mov esi, 1
mov dword [esp + 0x20], esi
lea edx, [esp + 0x7f0]
push str.CKZ00000002
push edx
call fcn.0040ed36
add esp, 8
test eax, eax
je 0x4064b8
mov esi, 1
mov dword [esp + 0x20], esi
jmp 0x4064b8
cmp dword [0x41ba30], edi
je 0x4064b8
push edi
lea eax, [esp + 0x10]
push eax
push 0x60
push 0x423b80
push ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
cmp eax, 1
jne 0x4064b8
cmp dword [esp + 0xc], 0x60
jne 0x4064b8
cmp dword [0x423b80], 0x524150
jne 0x4063dc
cmp dword [0x423b84], edi
je 0x4063ea
mov esi, 1
mov dword [esp + 0x20], esi
jmp 0x4064b8
push edi
push 0x20
push ebx
call fcn.004054c0
lea ecx, [esp + 0x360]
push ecx
call fcn.00413100
add esp, 4
push edi
lea edx, [esp + 0x10]
push edx
push 0x200
lea eax, [esp + 0x7fc]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x406460
mov eax, dword [esp + 0xc]
cmp eax, edi
je 0x406460
push eax
lea ecx, [esp + 0x7f4]
push ecx
lea edx, [esp + 0x368]
push edx
call fcn.00413130
add esp, 0xc
push edi
lea eax, [esp + 0x10]
push eax
push 0x200
lea ecx, [esp + 0x7fc]
push ecx
push ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x406421
lea edx, [esp + 0x360]
push edx
lea eax, [esp + 0x3d4]
push eax
call fcn.004131d0
add esp, 8
mov eax, 0x10
xor ecx, ecx
nop
mov edx, dword [ecx + 0x423b90]
cmp edx, dword [esp + ecx + 0x3d0]
jne 0x40649c
sub eax, 4
add ecx, 4
cmp eax, 4
jae 0x406480
jmp 0x4064a5
mov esi, 1
mov dword [esp + 0x20], esi
mov eax, dword [0x423bc4]
mov ecx, dword [0x423bc0]
push eax
push ecx
push ebx
call fcn.004054c0
push 0x8000
push edi
push 0x41bb60
mov dword [0x41b26c], edi
mov dword [0x41b7cc], edi
mov dword [0x41ba28], edi
mov dword [0x41b7d8], edi
call fcn.004094e0
add esp, 0xc
cmp esi, edi
jne 0x406682
mov esi, dword [esp + 0x14]
mov dword [0x41b7d0], 0
lea esi, [esi + 0x41bb60]
mov edi, 0x80
cmp dword [0x41bb44], 0
je 0x40652f
lea edx, [esp + 0x1c]
push edx
lea eax, [esp + 0x34]
push eax
push 0x200
lea ecx, [esp + 0x7fc]
push ecx
push ebx
call fcn.00404f10
jmp 0x406664
cmp dword [0x41b7d4], 0
je 0x40655a
lea edx, [esp + 0x1c]
push edx
lea eax, [esp + 0x34]
push eax
push 0x200
lea ecx, [esp + 0x7fc]
push ecx
push ebx
call fcn.00404900
jmp 0x406664
cmp dword [0x41b7e0], 0
je 0x406585
lea edx, [esp + 0x1c]
push edx
lea eax, [esp + 0x34]
push eax
push 0x200
lea ecx, [esp + 0x7fc]
push ecx
push ebx
call fcn.00405120
jmp 0x406664
cmp dword [0x41b7dc], 0
je 0x4065aa
push 0
push 0
push 0x200
lea edx, [esp + 0x7fc]
push edx
push ebx
call fcn.00405320
jmp 0x406664
cmp dword [0x41b7c0], 0
je 0x4065d5
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x34]
push ecx
push 0x200
lea edx, [esp + 0x7fc]
push edx
push ebx
call fcn.00404b60
jmp 0x406664
cmp dword [0x41ba30], 0
je 0x406637
lea eax, [esp + 0x3b8]
push eax
lea ecx, [esp + 0x34]
push ecx
push 0x200
lea edx, [esp + 0x7fc]
push edx
push ebx
call fcn.00405280
test eax, eax
jle 0x406673
cmp dword [0x41b7c8], 0
jne 0x406668
mov eax, dword [esp + 0x3c0]
and eax, 2
xor ecx, ecx
or eax, ecx
je 0x406621
mov al, byte [esp + 0x10]
or byte [esi], al
sar dword [esp + 0x10], 1
jne 0x406668
inc esi
inc dword [0x41b7d0]
mov dword [esp + 0x10], edi
jmp 0x406504
cmp dword [0x41b484], 0
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0x34]
push edx
push 0x200
lea eax, [esp + 0x7fc]
push eax
push ebx
je 0x40665f
call fcn.00404a30
jmp 0x406664
call fcn.00404ca0
test eax, eax
jle 0x406673
inc dword [0x41b7d0]
jmp 0x406504
push 0
push 0
push 0
push ebx
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
xor edi, edi
mov esi, dword [sym.imp.KERNEL32.dll_SetFilePointer]
cmp dword [0x423b64], edi
jne 0x4066d1
cmp dword [0x41b7c0], edi
jne 0x4066d1
cmp dword [0x41ba30], edi
je 0x4066b9
mov ecx, dword [0x423bc4]
mov edx, dword [0x423bc0]
push ecx
push edx
push ebx
call fcn.004054c0
jmp 0x406828
cmp dword [0x41b484], edi
je 0x406828
mov eax, dword [esp + 0x74]
push edi
push edi
push eax
jmp 0x406825
push edi
lea ecx, [esp + 0x10]
push ecx
push 0x8000
push 0x41bb60
push ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
cmp eax, 1
jne 0x406816
mov eax, dword [esp + 0xc]
cmp eax, edi
je 0x406816
push str.jpeg
push eax
push 0x41bb60
call fcn.00413ee0
test eax, eax
je 0x406816
mov edx, dword [esp + 0xc]
push str.Sheriff
push edx
push 0x41bb60
call fcn.00413ee0
test eax, eax
je 0x406816
push edi
push edi
push edi
push ebx
call esi
push 0x200
lea eax, [esp + 0x7f4]
push eax
push ebx
call fcn.00404770
test eax, eax
jle 0x406804
cmp byte [esp + 0x7f0], 0x2d
je 0x406778
push 0x200
lea ecx, [esp + 0x7f4]
push ecx
push ebx
call fcn.00404770
test eax, eax
jg 0x406752
jmp 0x406804
xor eax, eax
lea ebx, [ebx]
mov cl, byte [esp + eax + 0x7f0]
mov byte [eax + 0x41b4a0], cl
inc eax
test cl, cl
jne 0x406780
lea edx, [esp + 0x7f0]
push 0x20
push edx
call fcn.004095d0
add esp, 8
cmp byte [eax], 0x20
jne 0x4067b6
lea esp, [esp]
inc eax
cmp byte [eax], 0x20
je 0x4067b0
mov ecx, eax
lea edx, [esp + 0x7f0]
sub ecx, edx
push 0x20
push eax
mov dword [0x41b6a4], ecx
call fcn.004095d0
add esp, 8
cmp byte [eax], 0x20
jne 0x4067dd
inc eax
cmp byte [eax], 0x20
je 0x4067d7
push 0x20
push eax
call fcn.004095d0
add esp, 8
cmp byte [eax], 0x20
jne 0x4067f6
lea ecx, [ecx]
inc eax
cmp byte [eax], 0x20
je 0x4067f0
lea ecx, [esp + 0x7f0]
sub eax, ecx
mov dword [0x423be0], eax
mov dword [0x41b7c0], 1
mov dword [0x423b64], edi
jmp 0x406828
cmp dword [0x423b64], edi
je 0x406828
push edi
push edi
push 0x80
push ebx
call esi
xor eax, eax
lea ebx, [ebx]
mov cl, byte [eax + 0x41b920]
mov byte [esp + eax + 0x7f0], cl
inc eax
test cl, cl
jne 0x406830
lea edx, [esp + 0x7f0]
push 0x5c
push edx
call fcn.00409590
add esp, 8
cmp eax, edi
je 0x406869
mov byte [eax], 0
lea eax, [esp + 0x7f0]
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
cmp dword [0x41b908], edi
je 0x4068e0
push edi
push 0x8000000
push 2
push edi
push edi
push 0x40000000
lea ecx, [esp + 0xa08]
push ecx
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov dword [0x41b48c], eax
cmp eax, 0xffffffff
jne 0x406ae3
lea ecx, [esp + 0x9f0]
push ecx
lea edx, [esp + 0x7f4]
push str.Could_not_open_output_file:___s_
push edx
call fcn.00409e03
add esp, 0xc
push 0x30
push str.Error
lea eax, [esp + 0x7f8]
push eax
push edi
call dword [sym.imp.USER32.dll_MessageBoxA]
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [esp + 0x24]
push ecx
jmp 0x405cd2
cmp dword [esp + 0x44], edi
je 0x406900
mov edi, dword [sym.imp.USER32.dll_GetSystemMetrics]
push 0x4c
call edi
push 0x4d
mov esi, eax
call edi
push 0x4e
mov ebx, eax
call edi
push 0x4f
jmp 0x40690d
xor esi, esi
push esi
xor ebx, ebx
call dword [sym.imp.USER32.dll_GetSystemMetrics]
push 1
mov edi, eax
call dword [sym.imp.USER32.dll_GetSystemMetrics]
push 0x41ba40
push 0x200
lea edx, [esp + 0x7f8]
push edx
push 0x4157a0
push str.WindowInfo
push str.QuickSFV
mov dword [esp + 0x30], eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
cmp byte [esp + 0x7f0], 0
je 0x4069d7
push 0x2c
lea eax, [esp + 0xa8]
push eax
lea ecx, [esp + 0x7f8]
push ecx
call fcn.00401110
cmp dword [esp + 0xc8], esi
jle 0x406979
add esi, edi
cmp dword [esp + 0xc0], esi
jl 0x40698f
mov dword [esp + 0xc0], 0xa
mov dword [esp + 0xc8], 0x190
cmp dword [esp + 0xcc], ebx
jle 0x4069a7
mov edx, dword [esp + 0x18]
add edx, ebx
cmp dword [esp + 0xc4], edx
jl 0x4069bd
mov dword [esp + 0xc0], 0xa
mov dword [esp + 0xcc], 0xfa
mov ebx, dword [esp + 0x50]
lea eax, [esp + 0xa4]
push eax
push ebx
call fcn.00403de0
mov esi, eax
mov dword [esp + 0x18], esi
jmp 0x4069ed
mov ecx, dword [esp + 0x50]
push 0
push ecx
call fcn.00403de0
mov ebx, dword [esp + 0x50]
mov dword [esp + 0x18], eax
mov esi, eax
mov eax, dword [0x41b7d0]
cmp eax, 0xffffffff
je 0x406a00
lea edx, [eax + eax]
push edx
call fcn.00402070
lea eax, [esp + 0x128]
push eax
push 0xffffffffffffffeb
push esi
call dword [sym.imp.USER32.dll_SetWindowLongA]
lea ecx, [esp + 0x94]
push ecx
push esi
call dword [sym.imp.USER32.dll_GetClientRect]
cmp dword [0x41b480], 0
mov dword [esp + 0xa0], 0x20
jne 0x406a89
push 0
push esi
call dword [sym.imp.USER32.dll_GetSystemMenu]
mov edi, dword [sym.imp.USER32.dll_AppendMenuA]
push 0
push 0
mov esi, eax
push 0x800
push esi
call edi
mov edx, dword [0x41b904]
neg edx
push str.Update_DB
sbb edx, edx
push 0x1f7
and edx, 8
push edx
push esi
call edi
push 0
push 0
push 0x800
push esi
call edi
push str.About_QuickSFV
push 0x1f8
push 0
push esi
call edi
jmp 0x406aa9
mov eax, dword [0x41b904]
neg eax
sbb eax, eax
and eax, 8
push eax
push 0x9c44
push esi
call dword [sym.imp.USER32.dll_GetMenu]
push eax
call dword [sym.imp.USER32.dll_CheckMenuItem]
mov edi, dword [sym.imp.USER32.dll_LoadIconA]
push 0x65
push ebx
call edi
mov ecx, dword [esp + 0x18]
mov esi, dword [sym.imp.USER32.dll_SendMessageA]
push eax
push 1
push 0x80
push ecx
call esi
push 0x65
push ebx
call edi
mov edx, dword [esp + 0x18]
push eax
push 0
push 0x80
push edx
call esi
mov ebx, dword [esp + 0x6c]
xor edi, edi
lea eax, [esp + 0x128]
push eax
call fcn.00401f80
mov ecx, dword [0x41ba2c]
push ecx
push 0x415d64
push 3
call fcn.004023c0
add esp, 0xc
cmp dword [0x41bb44], edi
je 0x406b75
push 0x200
lea edx, [esp + 0x7f4]
push edx
push ebx
call fcn.00404770
test eax, eax
jg 0x406b3c
push str.Invalid_.CKZ_format
push 2
call fcn.004023c0
add esp, 8
mov dword [esp + 0x20], 1
lea eax, [esp + 0x7f0]
push str.CKZ00000002
push eax
call fcn.0040ed36
add esp, 8
test eax, eax
je 0x406f15
push str.Invalid_.CKZ_format
push 2
call fcn.004023c0
add esp, 8
mov dword [esp + 0x20], 1
jmp 0x406f15
cmp dword [0x41b7d4], edi
je 0x406e5d
cmp dword [0x41b7c8], edi
jne 0x406f15
push 0x200
lea ecx, [esp + 0x7f4]
push ecx
push ebx
call fcn.00404770
test eax, eax
jle 0x406e4b
jmp 0x406bb0
mov eax, dword [esp + 0x7f0]
cmp eax, 0x2d30513b
je 0x406bfd
cmp eax, 0x2d31513b
je 0x406c73
cmp eax, 0x2d32513b
je 0x406d31
push 0x200
lea edx, [esp + 0x7f4]
push edx
push ebx
call fcn.00404770
test eax, eax
jg 0x406bb0
push 0
push 0
push 0
push ebx
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
jmp 0x406f15
xor esi, esi
mov edi, 0x2d30513b
mov eax, 0x8000
sub eax, esi
push eax
lea ecx, [esi + 0x41bb60]
push ecx
lea edx, [esp + 0x7fc]
push edx
call fcn.00401110
add esi, eax
push 0x200
lea eax, [esp + 0x7f4]
push eax
push ebx
call fcn.00404770
cmp eax, 4
jle 0x406c43
cmp dword [esp + 0x7f0], edi
je 0x406c04
push 0x8000
push 0
push 0x41bb60
mov dword [0x41b7c8], 1
call fcn.004094e0
add esp, 0xc
push 0
push 0
push 0
push ebx
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
jmp 0x406f15
mov ecx, 0x41b6c0
lea eax, [esp + 0x7f4]
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x406ca0
test dl, dl
je 0x406c9c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x406ca0
add eax, 2
add ecx, 2
test dl, dl
jne 0x406c80
xor eax, eax
jmp 0x406ca5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x406c43
push 0x200
lea ecx, [esp + 0x7f4]
push ecx
push ebx
call fcn.00404770
cmp eax, 4
jle 0x406e4b
cmp dword [esp + 0x7f0], 0x2d31513b
jne 0x406e4b
xor esi, esi
mov edx, 0x8000
sub edx, esi
push edx
lea eax, [esi + 0x41bb60]
push eax
lea ecx, [esp + 0x7fc]
push ecx
call fcn.00401110
push 0x200
lea edx, [esp + 0x7f4]
push edx
push ebx
add esi, eax
call fcn.00404770
cmp eax, 4
jle 0x406e4b
cmp dword [esp + 0x7f0], 0x2d31513b
je 0x406cd8
push 0
push 0
push 0
push ebx
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
jmp 0x406f15
mov ecx, 0x41b6c0
lea eax, [esp + 0x7f4]
lea ecx, [ecx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x406d60
test dl, dl
je 0x406d5c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x406d60
add eax, 2
add ecx, 2
test dl, dl
jne 0x406d40
xor eax, eax
jmp 0x406d65
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x406c43
push 0x200
lea eax, [esp + 0x7f4]
push eax
push ebx
call fcn.00404770
cmp eax, 4
jle 0x406de1
cmp dword [esp + 0x7f0], 0x2d32513b
jne 0x406de1
push 8
lea ecx, [esp + 0x4c]
push ecx
lea edx, [esp + 0x7fc]
push edx
call fcn.00401110
mov esi, dword [esp + 0x58]
mov edi, dword [esp + 0x5c]
mov eax, esi
or eax, edi
je 0x406de1
lea ecx, [esp + 0x28]
push ecx
call dword [sym.imp.KERNEL32.dll_GetSystemTimeAsFileTime]
mov ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x4c]
add ecx, esi
adc eax, edi
cmp eax, dword [esp + 0x2c]
ja 0x406de1
jb 0x406c43
cmp ecx, dword [esp + 0x28]
jbe 0x406c43
push 0x200
lea edx, [esp + 0x7f4]
push edx
push ebx
call fcn.00404770
cmp eax, 4
jle 0x406e4b
cmp dword [esp + 0x7f0], 0x2d32513b
jne 0x406e4b
xor esi, esi
mov eax, 0x8000
sub eax, esi
push eax
lea ecx, [esi + 0x41bb60]
push ecx
lea edx, [esp + 0x7fc]
push edx
call fcn.00401110
add esi, eax
push 0x200
lea eax, [esp + 0x7f4]
push eax
push ebx
call fcn.00404770
cmp eax, 4
jle 0x406e4b
cmp dword [esp + 0x7f0], 0x2d32513b
je 0x406e08
push 0
push 0
push 0
push ebx
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
jmp 0x406f15
cmp dword [0x41ba30], edi
je 0x406f15
cmp dword [0x41b904], 0
je 0x406f15
cmp dword [esp + 0x20], 0
je 0x406e93
push 0x41b920
push str._s:_:___Invalid_.PAR_file
push 2
call fcn.004023c0
jmp 0x406f12
xor eax, eax
jmp 0x406ea0
mov cl, byte [eax + 0x41b920]
mov byte [esp + eax + 0x128], cl
inc eax
test cl, cl
jne 0x406ea0
lea ecx, [esp + 0x48]
push ecx
lea edx, [esp + 0x12c]
push edx
call fcn.004055e0
mov esi, dword [esp + 0x58]
mov edi, dword [esp + 0x5c]
mov eax, esi
or eax, edi
je 0x406f15
lea ecx, [esp + 0x28]
push ecx
call dword [sym.imp.KERNEL32.dll_GetSystemTimeAsFileTime]
mov ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x4c]
add ecx, esi
adc eax, edi
cmp eax, dword [esp + 0x2c]
ja 0x406f15
jb 0x406ef7
cmp ecx, dword [esp + 0x28]
ja 0x406f15
push 0x8000
push 0
push 0x41bb60
mov dword [0x41b7c8], 1
call fcn.004094e0
add esp, 0xc
xor esi, esi
mov dword [esp + 0x14], esi
mov dword [esp + 0x10], 0x80
cmp dword [esp + 0x20], esi
jne 0x40765a
cmp byte [0x41b800], 0
je 0x406f60
push 0x200
push 0x41b800
push 0x41b280
call fcn.00409c30
add esp, 0xc
mov byte [0x41b47f], 0
mov byte [0x41b800], 0
jmp 0x406f60
mov edi, dword [esp + 0x18]
push edi
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x406f78
cmp dword [0x41b6a0], 0
je 0x406f85
cmp dword [0x41b908], 0
je 0x40765a
cmp dword [0x41bb44], 0
je 0x406fb3
lea edx, [esp + 0x1c]
push edx
lea eax, [esp + 0x334]
push eax
push 0x200
lea ecx, [esp + 0x134]
push ecx
push ebx
call fcn.00404f10
jmp 0x4070f0
cmp dword [0x41b7d4], 0
je 0x406fe1
lea edx, [esp + 0x1c]
push edx
lea eax, [esp + 0x334]
push eax
push 0x200
lea ecx, [esp + 0x134]
push ecx
push ebx
call fcn.00404900
jmp 0x4070f0
cmp dword [0x41b7e0], 0
je 0x40700f
lea edx, [esp + 0x1c]
push edx
lea eax, [esp + 0x334]
push eax
push 0x200
lea ecx, [esp + 0x134]
push ecx
push ebx
call fcn.00405120
jmp 0x4070f0
cmp dword [0x41b7dc], 0
je 0x407040
lea edx, [esp + 0x3d0]
push edx
lea eax, [esp + 0x334]
push eax
push 0x200
lea ecx, [esp + 0x134]
push ecx
push ebx
call fcn.00405320
jmp 0x4070f0
cmp dword [0x41b7c0], 0
je 0x40706e
lea edx, [esp + 0x1c]
push edx
lea eax, [esp + 0x334]
push eax
push 0x200
lea ecx, [esp + 0x134]
push ecx
push ebx
call fcn.00404b60
jmp 0x4070f0
cmp dword [0x41ba30], 0
je 0x4070c0
lea edx, [esp + 0x3b8]
push edx
lea eax, [esp + 0x334]
push eax
push 0x200
lea ecx, [esp + 0x134]
push ecx
push ebx
call fcn.00405280
test eax, eax
jle 0x40765a
mov edx, dword [esp + 0x3c8]
mov eax, dword [esp + 0x3cc]
mov dword [esp + 0x330], edx
mov dword [esp + 0x334], eax
jmp 0x4070f8
cmp dword [0x41b484], 0
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0x334]
push edx
push 0x200
lea eax, [esp + 0x134]
push eax
push ebx
je 0x4070eb
call fcn.00404a30
jmp 0x4070f0
call fcn.00404ca0
test eax, eax
jle 0x40765a
cmp byte [0x41b280], 0
je 0x407152
xor eax, eax
jmp 0x407110
mov cl, byte [esp + eax + 0x128]
mov byte [esp + eax + 0xaf8], cl
inc eax
test cl, cl
jne 0x407110
lea ecx, [esp + 0xaf8]
push ecx
push 0x41b280
push str._s_s
lea edx, [esp + 0x134]
push 0x200
push edx
call fcn.00409d54
add esp, 0x14
mov byte [esp + 0x327], 0
lea eax, [esp + 0x128]
push eax
call fcn.004054f0
test eax, eax
jne 0x407171
mov cl, byte [esp + 0x10]
not cl
and byte [esi + 0x41bb60], cl
jmp 0x4071c5
lea edx, [esp + 0x28]
push edx
lea eax, [esp + 0x12c]
push eax
call fcn.004055e0
cmp eax, 1
jne 0x4071c5
cmp dword [0x41b7d4], 0
jne 0x4071a3
cmp dword [0x41ba30], 0
je 0x4071c5
cmp dword [0x41b904], 0
je 0x4071c5
mov ecx, dword [esp + 0x2c]
cmp ecx, dword [esp + 0x4c]
jb 0x4071c5
ja 0x4071b9
mov edx, dword [esp + 0x28]
cmp edx, dword [esp + 0x48]
jb 0x4071c5
mov al, byte [esp + 0x10]
not al
and byte [esi + 0x41bb60], al
mov cl, byte [esp + 0x10]
test byte [esi + 0x41bb60], cl
jne 0x407562
mov edx, dword [esp + 0x340]
push edx
call dword [sym.imp.KERNEL32.dll_ResetEvent]
mov eax, dword [esp + 0x344]
push 0
push 1
push eax
call dword [sym.imp.KERNEL32.dll_ReleaseSemaphore]
cmp dword [0x41b908], 0
jne 0x40722a
lea ecx, [esp + 0x128]
push ecx
lea edx, [esp + 0xafc]
push str.Checking__s...
push edx
call fcn.00409e03
add esp, 0xc
lea eax, [esp + 0xaf8]
push eax
push edi
call dword [sym.imp.USER32.dll_SetWindowTextA]
mov edx, dword [esp + 0x18]
push 1
lea ecx, [esp + 0x98]
push ecx
push edx
mov esi, 0xbb8
mov dword [0x41ba24], 0
call dword [sym.imp.USER32.dll_InvalidateRect]
or edi, 0xffffffff
push 0x4ff
push esi
push 0
lea eax, [esp + 0x34c]
push eax
push 1
call dword [sym.imp.USER32.dll_MsgWaitForMultipleObjects]
cmp eax, 1
jne 0x407353
push eax
push 0
push 0
push 0
lea ecx, [esp + 0x88]
push ecx
call dword [sym.imp.USER32.dll_PeekMessageA]
test eax, eax
je 0x4072c0
jmp 0x407290
lea edx, [esp + 0x78]
push edx
call dword [sym.imp.USER32.dll_TranslateMessage]
lea eax, [esp + 0x78]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageA]
push 1
push 0
push 0
push 0
lea ecx, [esp + 0x88]
push ecx
call dword [sym.imp.USER32.dll_PeekMessageA]
test eax, eax
jne 0x407290
cmp dword [0x41b6a0], 0
je 0x407251
mov ecx, dword [esp + 0x340]
mov edi, 1
add dword [0x41ba28], edi
push ecx
mov dword [0x41ba24], 0
call dword [sym.imp.KERNEL32.dll_ResetEvent]
mov eax, dword [esp + 0x338]
test eax, eax
jne 0x407491
cmp dword [0x41ba30], eax
jne 0x4073e9
cmp dword [0x41b7dc], eax
jne 0x4073e9
mov eax, dword [esp + 0x328]
cmp dword [esp + 0x1c], eax
jne 0x4073bc
mov dl, byte [esp + 0x10]
mov esi, dword [esp + 0x14]
or byte [esi + 0x41bb60], dl
push 0x415d18
push eax
lea eax, [esp + 0x130]
push eax
push str._s:__08X:___s
push edi
call fcn.004023c0
add esp, 0x14
jmp 0x40761c
cmp eax, 0x102
jne 0x4072c9
cmp dword [0x41b908], 0
jne 0x407251
cmp dword [0x41ba24], 0
mov eax, dword [esp + 0x33c]
jne 0x407384
cmp eax, 0x4b
jae 0x407251
mov dword [0x41ba24], 1
mov esi, 0x1f4
cmp eax, edi
je 0x407251
mov eax, dword [esp + 0x18]
push 0
lea edx, [esp + 0x98]
push edx
push eax
call dword [sym.imp.USER32.dll_InvalidateRect]
mov edi, dword [esp + 0x33c]
jmp 0x407251
push str.CRC_mismatch
push str.FAILED
push eax
lea ecx, [esp + 0x134]
push ecx
push str._s:__08x:___s.___s
push 2
call fcn.004023c0
add esp, 0x18
add dword [0x41b7cc], edi
jmp 0x40761c
mov eax, 0x10
xor ecx, ecx
mov edx, dword [esp + ecx + 0x348]
cmp edx, dword [esp + ecx + 0x3d0]
jne 0x40744f
sub eax, 4
add ecx, 4
cmp eax, 4
jae 0x4073f0
mov cl, byte [esp + 0x10]
mov eax, dword [esp + 0x14]
or byte [eax + 0x41bb60], cl
push 0x415d18
lea edx, [esp + 0x34c]
push edx
lea eax, [esp + 0x7f8]
push eax
call fcn.004046b0
push eax
lea ecx, [esp + 0x130]
push ecx
push str._s:__s:___s
push edi
call fcn.004023c0
add esp, 0x14
jmp 0x40761c
push str.CRC_mismatch
push str.FAILED
lea eax, [esp + 0x350]
push eax
lea ecx, [esp + 0x7fc]
push ecx
call fcn.004046b0
push eax
lea edx, [esp + 0x134]
push edx
push str._s:__s:___s.___s
push 2
call fcn.004023c0
add esp, 0x18
add dword [0x41b7cc], edi
jmp 0x40761c
cmp eax, edi
jne 0x4074c1
push str.File_does_not_exist
push str.FAILED
lea edx, [esp + 0x130]
push edx
push str._s:_:____s.___s
push 2
call fcn.004023c0
add esp, 0x14
add dword [0x41b26c], edi
jmp 0x40761c
cmp eax, 2
jne 0x4074da
push str.Error_reading_file
push str.FAILED
lea eax, [esp + 0x130]
push eax
jmp 0x407522
cmp eax, 3
jne 0x40750b
push str.Could_not_resolve_filename
push str.FAILED
lea ecx, [esp + 0x130]
push ecx
push str._s:_:____s.___s
push 2
call fcn.004023c0
add esp, 0x14
add dword [0x41b7d8], edi
jmp 0x40761c
cmp eax, 4
jne 0x40753c
push str.File_length_mismatch
push str.FAILED
lea edx, [esp + 0x130]
push edx
push str._s:_:____s.___s
push 2
call fcn.004023c0
add esp, 0x14
add dword [0x41b7cc], edi
jmp 0x40761c
push str.Internal_allocation_error
push str.FAILED
lea eax, [esp + 0x130]
push eax
push str._s:_:____s.___s
push 2
call fcn.004023c0
add esp, 0x14
jmp 0x40761c
inc dword [0x41ba28]
cmp dword [0x41ba30], 0
jne 0x407593
cmp dword [0x41b7dc], 0
jne 0x407593
mov ecx, dword [esp + 0x1c]
push 0x415d18
push ecx
lea edx, [esp + 0x130]
push edx
push str._s:__08x:___s__Previously_verified_
jmp 0x4075bb
push 0x415d18
lea eax, [esp + 0x3d4]
push eax
lea ecx, [esp + 0x7f8]
push ecx
call fcn.004046b0
push eax
lea edx, [esp + 0x130]
push edx
push str._s:__s:___s__Previously_verified_
push 1
call fcn.004023c0
add esp, 0x14
test byte [0x41ba28], 0x1f
jne 0x40761c
mov esi, dword [sym.imp.USER32.dll_PeekMessageA]
push 1
push 0
push 0
push 0
lea eax, [esp + 0x88]
push eax
call esi
test eax, eax
je 0x40761c
lea ebx, [ebx]
lea ecx, [esp + 0x78]
push ecx
call dword [sym.imp.USER32.dll_TranslateMessage]
lea edx, [esp + 0x78]
push edx
call dword [sym.imp.USER32.dll_DispatchMessageA]
push 1
push 0
push 0
push 0
lea eax, [esp + 0x88]
push eax
call esi
test eax, eax
jne 0x4075f0
sar dword [esp + 0x10], 1
mov esi, dword [esp + 0x14]
jne 0x407633
inc esi
mov dword [esp + 0x10], 0x80
mov dword [esp + 0x14], esi
cmp dword [0x41b908], 0
jne 0x406f60
mov edx, dword [esp + 0x18]
push 1
lea ecx, [esp + 0x98]
push ecx
push edx
call dword [sym.imp.USER32.dll_InvalidateRect]
jmp 0x406f60
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [esp + 0x18]
push eax
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
jne 0x40767c
cmp dword [0x41b908], eax
je 0x407d6b
cmp dword [0x41b7d4], 0
mov eax, dword [0x41b904]
je 0x40791c
test eax, eax
je 0x40791c
cmp dword [esp + 0x20], 0
jne 0x40791c
push 0
push 0x8000000
push 3
push 0
push 0
push 0xc0000000
push 0x41b920
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov esi, eax
cmp esi, 0xffffffff
jne 0x4076d9
push str.Could_not_update_DB
push 2
call fcn.004023c0
add esp, 8
jmp 0x407b33
push 1
push 0
push 0
push esi
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
push 0x200
lea ecx, [esp + 0x7f4]
push ecx
push esi
mov ebx, eax
call fcn.00404770
mov edi, eax
test edi, edi
jle 0x407768
mov eax, dword [esp + 0x7f0]
cmp al, 0x3b
jne 0x407730
cmp ah, 0x51
jne 0x407730
movsx edx, byte [esp + 0x7f2]
push edx
call fcn.00409156
add esp, 4
test eax, eax
je 0x407730
cmp byte [esp + 0x7f3], 0x2d
je 0x40775a
push 1
push 0
push 0
push esi
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov ebx, eax
push 0x200
lea eax, [esp + 0x7f4]
push eax
push esi
call fcn.00404770
mov edi, eax
test edi, edi
jg 0x407701
jmp 0x407766
push 0
push 0
push ebx
push esi
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
test edi, edi
jl 0x407b2c
mov eax, dword [esp + 0x7f0]
cmp al, 0x3b
jne 0x40779d
cmp ah, 0x51
jne 0x40779d
movsx ecx, byte [esp + 0x7f2]
push ecx
call fcn.00409156
add esp, 4
test eax, eax
je 0x40779d
cmp byte [esp + 0x7f3], 0x2d
je 0x4077e6
push 2
push 0
push 0xffffffffffffffff
push esi
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
push 0
lea edx, [esp + 0x10]
push edx
push 1
lea eax, [esp + 0x7fc]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov al, byte [esp + 0x7f0]
cmp al, 0xd
je 0x4077e6
cmp al, 0xa
je 0x4077e6
push 0
lea ecx, [esp + 0x10]
push ecx
push 2
push 0x415be8
push esi
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov dword [esp + 0x7f0], 0x2d32513b
xor eax, eax
jmp 0x407800
mov cl, byte [eax + 0x41b6c0]
mov byte [esp + eax + 0x7f4], cl
inc eax
test cl, cl
jne 0x407800
lea eax, [esp + 0x7f0]
lea ecx, [eax + 1]
lea esp, [esp]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x407820
mov edi, dword [sym.imp.KERNEL32.dll_WriteFile]
sub eax, ecx
lea eax, [esp + eax + 0x7f0]
push 0
lea ecx, [esp + 0x7f4]
mov dword [eax], 0xa0d
lea edx, [esp + 0x10]
push edx
sub eax, ecx
add eax, 2
push eax
mov edx, ecx
push edx
push esi
call edi
lea eax, [esp + 0x28]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemTimeAsFileTime]
push 8
lea ecx, [esp + 0x7f8]
push ecx
lea edx, [esp + 0x30]
push edx
call section..text
lea eax, [esp + eax + 0x7f4]
mov dword [eax], 0xa0d
push 0
lea edx, [esp + 0x7f4]
sub eax, edx
lea ecx, [esp + 0x10]
push ecx
add eax, 2
push eax
mov eax, edx
push eax
push esi
call edi
xor ebx, ebx
cmp dword [esp + 0x10], 0x80
je 0x4078ac
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 0
je 0x407910
cmp dword [esp + 0x14], 0x30
mov edi, 0x30
jg 0x4078c3
mov edi, dword [esp + 0x14]
sub dword [esp + 0x14], edi
push edi
lea ecx, [esp + 0x7f8]
push ecx
lea edx, [ebx + 0x41bb60]
push edx
call section..text
lea eax, [esp + eax + 0x7f4]
mov dword [eax], 0xa0d
push 0
lea edx, [esp + 0x7f4]
sub eax, edx
lea ecx, [esp + 0x10]
push ecx
add eax, 2
push eax
mov eax, edx
push eax
push esi
call dword [sym.imp.KERNEL32.dll_WriteFile]
add ebx, edi
cmp dword [esp + 0x14], 0
jne 0x4078b3
push esi
call dword [sym.imp.KERNEL32.dll_SetEndOfFile]
jmp 0x407b2c
cmp dword [0x41ba30], 0
je 0x407b33
test eax, eax
je 0x407b33
cmp dword [esp + 0x20], 0
jne 0x407b33
push 0
push 0x8000000
push 3
push 0
push 0
push 0xc0000000
push 0x41b920
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov esi, eax
cmp esi, 0xffffffff
jne 0x407974
push str.Could_not_update_DB
push 2
call fcn.004023c0
add esp, 8
jmp 0x407b33
mov ecx, dword [0x423bc4]
mov edx, dword [0x423bc0]
push ecx
push edx
xor edi, edi
push esi
mov dword [esp + 0x20], edi
mov dword [esp + 0x1c], 0x80
call fcn.004054c0
push esi
call fcn.00405490
mov dword [esp + 0x38], eax
lea eax, [esp + 0x3b8]
push eax
lea ecx, [esp + 0x34]
push ecx
mov dword [esp + 0x44], edx
push 0x200
lea edx, [esp + 0x7fc]
push edx
push esi
call fcn.00405280
mov ebx, dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jle 0x407a7f
mov al, byte [esp + 0x10]
test byte [edi + 0x41bb60], al
jne 0x4079f6
mov ecx, dword [esp + 0x3c4]
and dword [esp + 0x3c0], 0xfffffffd
mov dword [esp + 0x3c4], ecx
jmp 0x407a0c
mov edx, dword [esp + 0x3c4]
or dword [esp + 0x3c0], 2
mov dword [esp + 0x3c4], edx
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x38]
push eax
push ecx
push esi
call fcn.004054c0
mov eax, dword [esp + 0x3b8]
push 0
lea edx, [esp + 0x10]
push edx
push eax
lea ecx, [esp + 0x3c4]
push ecx
push esi
call ebx
sar dword [esp + 0x10], 1
jne 0x407a45
mov dword [esp + 0x10], 0x80
inc edi
push esi
call fcn.00405490
mov dword [esp + 0x3c], edx
lea edx, [esp + 0x3b8]
push edx
mov dword [esp + 0x3c], eax
lea eax, [esp + 0x34]
push eax
push 0x200
lea ecx, [esp + 0x7fc]
push ecx
push esi
call fcn.00405280
test eax, eax
jg 0x4079d2
mov dword [esp + 0x14], edi
push 0
push 0x20
push esi
call fcn.004054c0
lea edx, [esp + 0x360]
push edx
call fcn.00413100
mov edi, dword [sym.imp.KERNEL32.dll_ReadFile]
add esp, 4
push 0
lea eax, [esp + 0x10]
push eax
push 0x200
lea ecx, [esp + 0x7fc]
push ecx
push esi
call edi
test eax, eax
je 0x407afc
lea ebx, [ebx]
mov eax, dword [esp + 0xc]
test eax, eax
je 0x407afc
push eax
lea edx, [esp + 0x7f4]
push edx
lea eax, [esp + 0x368]
push eax
call fcn.00413130
add esp, 0xc
push 0
lea ecx, [esp + 0x10]
push ecx
push 0x200
lea edx, [esp + 0x7fc]
push edx
push esi
call edi
test eax, eax
jne 0x407ac0
lea eax, [esp + 0x360]
push eax
push 0x423b90
call fcn.004131d0
add esp, 8
push 0
push 0x10
push esi
call fcn.004054c0
push 0
lea ecx, [esp + 0x10]
push ecx
push 0x10
push 0x423b90
push esi
call ebx
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [0x41ba28]
mov eax, 0x4157a0
cmp ecx, 1
je 0x407b48
mov eax, 0x415be4
push eax
push ecx
push str._d_file_s_checked
push 3
call fcn.004023c0
add esp, 0x10
cmp dword [0x41ba28], 0
je 0x407ca3
mov edi, dword [0x41b7d8]
test edi, edi
je 0x407ba3
cmp edi, 1
jne 0x407b81
mov ecx, 0x415bcc
mov eax, 0x4157a0
jmp 0x407b8b
mov ecx, str.were
mov eax, 0x415be4
push ecx
push eax
push edi
push str._d_filename_s_resolved_to_multiple_filenames_and__s_not_verified
push 2
call fcn.004023c0
mov edi, dword [0x41b7d8]
add esp, 0x14
mov esi, dword [0x41b7cc]
test esi, esi
je 0x407be9
mov edi, dword [0x41b26c]
test edi, edi
jne 0x407c25
cmp esi, 1
jne 0x407bc8
mov ecx, 0x4157a0
mov eax, 0x415bcc
jmp 0x407bd2
mov ecx, 0x415be4
mov eax, str.were
push ecx
push esi
push eax
push str.There__s__d_bad_file_s
push 2
call fcn.004023c0
add esp, 0x14
jmp 0x407ca3
mov edx, dword [0x41b26c]
test edx, edx
je 0x407c65
cmp edx, 1
jne 0x407c04
mov ecx, 0x4157a0
mov eax, 0x415bcc
jmp 0x407c0e
mov ecx, 0x415be4
mov eax, str.were
push ecx
push edx
push eax
push str.There__s__d_missing_file_s
push 2
call fcn.004023c0
add esp, 0x14
jmp 0x407ca3
mov edx, 0x4157a0
cmp edi, 1
je 0x407c34
mov edx, 0x415be4
cmp esi, 1
jne 0x407c45
mov ecx, 0x4157a0
mov eax, 0x415bcc
jmp 0x407c4f
mov ecx, 0x415be4
mov eax, str.were
push edx
push edi
push ecx
push esi
push eax
push str.There__s__d_bad_file_s_and__d_missing_file_s
push 2
call fcn.004023c0
add esp, 0x1c
jmp 0x407ca3
test edi, edi
jne 0x407ca3
push str.All_files_OK
push 1
call fcn.004023c0
add esp, 8
cmp dword [esp + 0x64], edi
je 0x407ca3
push edi
push 0x80
push 2
push edi
push edi
push 0x40000000
push str._Verified_
call dword [sym.imp.KERNEL32.dll_CreateFileA]
test eax, eax
je 0x407ca3
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [0x41b908], 0
mov dword [0x423b60], 1
jne 0x407d5c
push 0
call dword [sym.imp.USER32.dll_MessageBeep]
mov esi, dword [esp + 0x18]
push str.Finished
push esi
call dword [sym.imp.USER32.dll_SetWindowTextA]
push esi
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x407d53
mov ebx, dword [sym.imp.USER32.dll_DispatchMessageA]
mov edi, dword [sym.imp.USER32.dll_TranslateMessage]
mov esi, dword [sym.imp.USER32.dll_PeekMessageA]
nop
cmp dword [0x41b6a0], 0
jne 0x407d53
cmp dword [0x41b7c4], 0
jne 0x407d53
push 1
push 0
push 0
push 0
lea edx, [esp + 0x88]
push edx
call esi
test eax, eax
je 0x407d3c
lea eax, [esp + 0x78]
push eax
call edi
lea ecx, [esp + 0x78]
push ecx
call ebx
push 1
push 0
push 0
push 0
lea edx, [esp + 0x88]
push edx
call esi
test eax, eax
jne 0x407d18
push 0xa
call dword [sym.imp.KERNEL32.dll_Sleep]
mov eax, dword [esp + 0x18]
push eax
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
jne 0x407cf0
cmp dword [0x41b908], 0
je 0x407d6b
mov ecx, dword [0x41b48c]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x407d70
call fcn.00402480
lea edx, [esp + 0x128]
push edx
call fcn.00401850
cmp dword [0x41b7c4], 0
jne 0x405f30
cmp dword [0x41b6a0], 0
je 0x407df8
mov al, byte [0x41b800]
test al, al
jne 0x405f43
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x68]
push ecx
mov byte [eax], 0
call fcn.004015b0
mov dword [esp + 0x24], 0
jmp 0x405bde
push 0x41b920
lea ecx, [esp + 0x7f4]
push str.Could_not_open_file:___s_
push ecx
call fcn.00409e03
add esp, 0xc
push 0x30
push str.Error
lea edx, [esp + 0x7f8]
push edx
push edi
call dword [sym.imp.USER32.dll_MessageBoxA]
mov eax, dword [esp + 0x24]
push eax
jmp 0x405cd2
mov edx, dword [esp + 0x24]
push edx
jmp 0x407e07
call dword [sym.imp.COMDLG32.dll_CommDlgExtendedError]
push 0
call fcn.004015b0
mov ecx, dword [esp + 0xdfc]
pop edi
pop esi
pop ebx
xor ecx, esp
xor eax, eax
call fcn.00408b84
mov esp, ebp
pop ebp
ret 0x10