Function at 0x4220d0
Capabilities:
Set current directory

Disassembly:
mov eax, dword [0x4525e4]
test eax, eax
jne 0x41a52a
ret
jmp eax
mov eax, dword [esp + 8]
sub esp, 0x22c
cmp eax, 0xfd
push ebx
push esi
push edi
jg 0x4229b0
je 0x422964
cmp eax, 0xfc
ja case.0x423076.514
xor ecx, ecx
mov cl, byte [eax + 0x423274]
jmp dword [ecx*4 + 0x4231e4]
mov edx, dword [esp + 0x23c]
mov dword [0x452884], 1
push edx
call fcn.00421e20
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebx
add esp, 0x22c
ret
pop edi
pop esi
mov dword [0x4528a4], 1
xor eax, eax
pop ebx
add esp, 0x22c
ret
call fcn.0043051a
mov edi, eax
xor esi, esi
test edi, edi
jle 0x422161
push 0
push esi
call fcn.0043015a
add esp, 8
inc esi
cmp esi, edi
jl 0x422151
mov eax, dword [0x44ae84]
test eax, eax
je 0x42217a
mov eax, dword [0x45bf04]
push 0
push 0
push eax
call dword [sym.imp.USER32.dll_InvalidateRect]
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x22c
ret
mov eax, dword [esp + 0x244]
test eax, eax
je 0x4221b3
mov ecx, dword [0x44ae98]
test ecx, ecx
je 0x4221b0
push eax
call fcn.00425200
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebx
add esp, 0x22c
ret
mov byte [eax], 0
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x22c
ret
mov esi, dword [esp + 0x244]
push 1
push esi
call fcn.00430631
push eax
push esi
call fcn.00430d1a
mov ecx, dword [0x45bf04]
add esp, 0x10
push 0
push 0
push 0x401
push ecx
call dword [sym.imp.USER32.dll_SendMessageA]
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x22c
ret
mov eax, dword [esp + 0x244]
test eax, eax
mov dword [0x452604], eax
jl 0x422223
cmp eax, 9
jg 0x422223
xor edx, edx
pop edi
mov dl, byte [eax + 0x44c500]
pop esi
mov eax, edx
pop ebx
add esp, 0x22c
ret
cmp eax, 0xa
jne 0x422239
xor eax, eax
pop edi
mov al, byte [0x44aebc]
pop esi
pop ebx
add esp, 0x22c
ret
cmp eax, 0xb
jne 0x42224f
xor eax, eax
pop edi
mov al, byte [0x45dea6]
pop esi
pop ebx
add esp, 0x22c
ret
cmp eax, 0xc
jne case.0x423076.512
xor eax, eax
pop edi
mov al, byte [0x45e204]
pop esi
pop ebx
add esp, 0x22c
ret
mov ebx, dword [esp + 0x244]
mov esi, dword [0x452604]
mov eax, ebx
and eax, 0xff000000
cmp eax, 0xdb000000
jne 0x42228f
xor ecx, ecx
mov cl, byte [esp + 0x246]
mov esi, ecx
and ebx, 0xffff
test esi, esi
jl 0x422307
cmp esi, 9
jg 0x422307
mov byte [esi + 0x44c500], bl
cmp esi, 0xb
je 0x4222ae
cmp esi, 0xc
jne 0x4222d0
xor edx, edx
xor eax, eax
mov dl, byte [0x45e204]
mov al, byte [0x45dea6]
push 0
push 0
push edx
push eax
call fcn.00411050
add esp, 0x10
cmp esi, 0xc
je 0x4222ef
xor ecx, ecx
xor edx, edx
mov cl, byte [0x44aebc]
mov dl, byte [0x45dea6]
push ecx
push 0x44c500
push edx
call fcn.0041a830
add esp, 0xc
mov eax, dword [0x44ae74]
test eax, eax
je 0x422347
test esi, esi
jl 0x422347
cmp esi, 0xa
jg 0x422347
jne 0x422335
xor esi, esi
jmp 0x422336
cmp esi, 0xa
jne 0x422314
mov byte [0x44aebc], bl
jmp 0x4222d0
cmp esi, 0xb
jne 0x422321
mov byte [0x45dea6], bl
jmp 0x4222ae
cmp esi, 0xc
jne 0x4222a4
mov byte [0x45e204], bl
jmp 0x4222ae
inc esi
push 0
push ebx
push esi
call fcn.00410f70
add esp, 0xc
call fcn.00411140
mov eax, dword [0x45b980]
push 0x25b
push 3
push 0x400
push eax
call dword [sym.imp.USER32.dll_PostMessageA]
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x22c
ret
mov eax, dword [esp + 0x244]
test eax, eax
jne 0x422385
mov eax, dword [0x45bdf8]
pop edi
pop esi
pop ebx
add esp, 0x22c
ret
cmp eax, 1
jne 0x422399
mov eax, dword [0x45c224]
pop edi
pop esi
pop ebx
add esp, 0x22c
ret
xor ecx, ecx
cmp eax, 2
mov eax, dword [0x45c0b0]
pop edi
setne cl
dec ecx
pop esi
and eax, ecx
pop ebx
add esp, 0x22c
ret
mov esi, dword [esp + 0x244]
test esi, esi
je 0x4223f8
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x4223f8
mov edx, 0x45e460
mov eax, esi
sub edx, esi
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x4223d5
mov edx, dword [0x45b980]
push 0
push 0x9d63
push 0x111
push edx
call dword [sym.imp.USER32.dll_SendMessageA]
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x22c
ret
mov edx, dword [esp + 0x244]
test edx, edx
je 0x422420
mov eax, 0x45e220
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x422416
pop edi
pop esi
mov eax, 0x45e460
pop ebx
add esp, 0x22c
ret
mov eax, dword [esp + 0x244]
test eax, eax
je 0x42244b
push eax
mov eax, dword [esp + 0x240]
push eax
call fcn.00441dd0
add esp, 8
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x22c
ret
mov ecx, dword [esp + 0x244]
push 0
push 0x452780
push ecx
jmp 0x422477
mov edx, dword [esp + 0x244]
push 0x452780
push 0
push edx
call fcn.004304b6
add esp, 0xc
neg eax
sbb eax, eax
pop edi
not eax
pop esi
and eax, 0x452780
pop ebx
add esp, 0x22c
ret
pop edi
pop esi
mov eax, 0x2905
pop ebx
add esp, 0x22c
ret
mov eax, dword [esp + 0x244]
push eax
call fcn.00430e77
mov ecx, dword [0x45bf04]
add esp, 4
push 0
push 0
push ecx
call dword [sym.imp.USER32.dll_InvalidateRect]
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x22c
ret
pop edi
pop esi
pop ebx
add esp, 0x22c
jmp fcn.0043051a
mov eax, dword [esp + 0x244]
cmp eax, 0xfffffd66
jne 0x4224fd
xor eax, eax
pop edi
mov al, byte [0x44ae60]
pop esi
pop ebx
add esp, 0x22c
ret
cmp al, 0xff
mov byte [0x44ae60], al
jbe 0x42250d
or al, 0xff
mov byte [0x44ae60], al
xor edx, edx
mov dl, al
push edx
call fcn.00419c30
xor eax, eax
push 0
mov al, byte [0x44ae60]
push eax
call fcn.0040d920
add esp, 0xc
xor eax, eax
pop edi
pop esi
pop ebx
add esp, 0x22c
ret
mov eax, dword [esp + 0x244]
cmp eax, 0xfffffd66
jne 0x422554
movsx eax, byte [0x45e9e2]
pop edi
pop esi
pop ebx
add esp, 0x22c
ret
cmp al, 0x81
mov byte [0x45e9e2], al
jge 0x422561
mov al, 0x81
jmp 0x422567
cmp al, 0x7f
jle 0x42256c
mov al, 0x7f
mov byte [0x45e9e2], al
movsx ecx, al
push 0
push ecx
call fcn.0040da20
movsx edx, byte [0x45e9e2]
push edx
call fcn.00419ca0
add esp, 0xc
xor eax, eax
pop edi
pop esi
pop ebx
add esp, 0x22c
ret
push 0
push 0x45ed60
call fcn.0041b742
add esp, 8
call fcn.0043051a
test eax, eax
je 0x42284f
push 0
call fcn.00430e83
add esp, 4
pop edi
pop esi
pop ebx
add esp, 0x22c
ret
mov ebx, dword [esp + 0x244]
cmp ebx, 0xffff
jle 0x42261c
mov eax, dword [ebx + 4]
test eax, eax
je 0x4225fd
mov ecx, dword [ebx + 8]
mov edx, dword [ebx]
push ecx
push eax
push edx
call fcn.00430720
add esp, 0xc
call fcn.00431ae3
pop edi
pop esi
mov eax, 1
pop ebx
add esp, 0x22c
ret
mov eax, dword [ebx]
push eax
call fcn.00430867
add esp, 4
call fcn.00431ae3
pop edi
pop esi
mov eax, 1
pop ebx
add esp, 0x22c
ret
test ebx, ebx
jne 0x422659
mov eax, dword [0x45270c]
test eax, eax
je 0x42268d
push eax
call fcn.00430867
mov ecx, dword [0x45270c]
add esp, 4
push ecx
call dword [sym.imp.KERNEL32.dll_GlobalFree]
mov dword [0x45270c], ebx
call fcn.00431ae3
pop edi
pop esi
mov eax, 1
pop ebx
add esp, 0x22c
ret
mov eax, dword [0x452768]
test eax, eax
jne 0x422674
push 0x104
push 0x40
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov dword [0x45270c], eax
mov edx, dword [0x452768]
mov eax, dword [0x45270c]
mov byte [edx + eax], bl
mov eax, dword [0x452768]
inc eax
mov dword [0x452768], eax
pop edi
pop esi
mov eax, 1
pop ebx
add esp, 0x22c
ret
mov ebx, dword [esp + 0x244]
xor esi, esi
cmp ebx, esi
jne 0x4226f0
mov eax, dword [0x452600]
cmp eax, esi
je 0x422724
mov ecx, dword [0x452754]
mov byte [ecx + eax], 0
mov edx, dword [0x452600]
push edx
mov dword [0x452754], esi
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
mov eax, dword [0x452600]
push eax
call dword [sym.imp.KERNEL32.dll_GlobalFree]
mov dword [0x452600], esi
pop edi
pop esi
mov eax, 1
pop ebx
add esp, 0x22c
ret
cmp dword [0x452754], esi
jne 0x42270a
push 0x104
push 0x40
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov dword [0x452600], eax
mov ecx, dword [0x452754]
mov edx, dword [0x452600]
mov byte [ecx + edx], bl
mov eax, dword [0x452754]
inc eax
mov dword [0x452754], eax
pop edi
pop esi
mov eax, 1
pop ebx
add esp, 0x22c
ret
mov eax, dword [0x452898]
mov esi, dword [0x45289c]
neg eax
sbb eax, eax
xor ecx, ecx
and eax, 2
pop edi
test esi, esi
setne cl
pop esi
or eax, ecx
pop ebx
add esp, 0x22c
ret
mov eax, dword [esp + 0x244]
test eax, eax
jne 0x42277e
mov eax, dword [0x45289c]
test eax, eax
je 0x42284f
pop edi
pop esi
pop ebx
add esp, 0x22c
jmp fcn.00419bc0
cmp eax, 1
jne case.0x423076.512
mov eax, dword [0x45289c]
test eax, eax
je 0x4227bb
mov eax, dword [0x45c230]
test eax, eax
je 0x4227bb
call dword [eax + 0x4c]
mov ecx, eax
mov eax, 0x10624dd3
imul ecx
mov eax, edx
pop edi
sar eax, 6
mov edx, eax
pop esi
shr edx, 0x1f
add eax, edx
pop ebx
add esp, 0x22c
ret
pop edi
pop esi
pop ebx
add esp, 0x22c
jmp fcn.004301aa
mov eax, dword [0x45289c]
test eax, eax
je 0x42284f
mov eax, dword [0x45c230]
test eax, eax
je 0x42284f
mov ecx, dword [eax + 0x14]
test ecx, ecx
je 0x42284f
mov eax, dword [esp + 0x244]
test eax, eax
jge 0x4227ef
xor eax, eax
push eax
call fcn.00419d10
add esp, 4
test eax, eax
push 0
jge 0x422822
mov eax, dword [esp + 0x240]
push 0
push 0x402
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
pop edi
pop esi
mov eax, 1
pop ebx
add esp, 0x22c
ret
call fcn.00419bc0
mov ecx, eax
mov eax, 0x10624dd3
imul ecx
sar edx, 6
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
push edx
call fcn.00438d6a
add esp, 8
xor eax, eax
pop edi
pop esi
pop ebx
add esp, 0x22c
ret
pop edi
pop esi
or eax, 0xffffffff
pop ebx
add esp, 0x22c
ret
pop edi
pop esi
mov eax, fcn.004186ed
pop ebx
add esp, 0x22c
ret
mov edx, dword [esp + 0x244]
pop edi
pop esi
mov dword [0x450ea0], edx
mov eax, 1
pop ebx
add esp, 0x22c
ret
mov ecx, dword [0x450ea0]
test ecx, ecx
je 0x422898
cmp eax, 0xf9
jne 0x4228f0
mov esi, dword [esp + 0x244]
test esi, esi
je 0x4228d7
call fcn.004397fc
test eax, eax
jne 0x4228c1
push 7
push str.file:__
push esi
call dword [sym.imp.MSVCRT.dll__strnicmp]
add esp, 0xc
test eax, eax
jne 0x4228f0
push esi
push esi
call fcn.00425376
add esp, 8
xor eax, eax
pop edi
pop esi
pop ebx
add esp, 0x22c
ret
mov eax, dword [0x44ae98]
test eax, eax
jne 0x4228f0
mov eax, dword [esp + 0x23c]
push eax
call fcn.00423be0
add esp, 4
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x22c
ret
pop edi
pop esi
pop ebx
add esp, 0x22c
jmp fcn.004397fc
mov cl, byte [0x45dea4]
xor eax, eax
test cl, cl
pop edi
pop esi
setne al
pop ebx
add esp, 0x22c
ret
mov cl, byte [0x45eb09]
xor eax, eax
test cl, cl
pop edi
pop esi
setne al
pop ebx
add esp, 0x22c
ret
mov bl, byte [0x45dea4]
mov esi, dword [esp + 0x244]
xor ecx, ecx
test bl, bl
setne cl
xor edx, edx
test esi, esi
setne dl
cmp ecx, edx
je case.0x423076.514
push 0
push 0x9c57
jmp 0x42298e
mov bl, byte [0x45eb09]
mov esi, dword [esp + 0x244]
xor ecx, ecx
test bl, bl
setne cl
xor edx, edx
test esi, esi
setne dl
cmp ecx, edx
je case.0x423076.514
push 0
push 0x9c56
mov eax, dword [esp + 0x244]
push 0x111
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
pop edi
pop esi
mov eax, 1
pop ebx
add esp, 0x22c
ret
cmp eax, 0x16c
jg 0x422ea4
je 0x422e10
add eax, 0xfffffefd
cmp eax, 0x68
ja case.0x423076.514
xor ecx, ecx
mov cl, byte [eax + 0x4233c0]
jmp dword [ecx*4 + 0x423374]
mov eax, dword [esp + 0x244]
test eax, eax
jne 0x4229f8
mov eax, dword [0x45c0a4]
pop edi
pop esi
pop ebx
add esp, 0x22c
ret
cmp eax, 1
jne 0x422a0c
mov eax, dword [0x45bf04]
pop edi
pop esi
pop ebx
add esp, 0x22c
ret
cmp eax, 2
jne 0x422a20
mov eax, dword [0x45bdf4]
pop edi
pop esi
pop ebx
add esp, 0x22c
ret
xor edx, edx
cmp eax, 3
mov eax, dword [0x45c0b4]
pop edi
setne dl
dec edx
pop esi
and eax, edx
pop ebx
add esp, 0x22c
ret
mov eax, dword [esp + 0x244]
pop edi
pop esi
pop ebx
add esp, 0x22c
cmp eax, 1
jne 0x422a54
jmp fcn.00419e10
jmp fcn.0041a190
mov edx, dword [esp + 0x244]
mov eax, dword [0x45bf1c]
xor esi, esi
cmp edx, esi
je 0x422aac
cmp eax, esi
je 0x422aac
cmp eax, edx
jne 0x422a8a
mov eax, dword [eax + 0x18]
pop edi
mov dword [0x45bf1c], eax
mov dword [edx + 0x18], esi
pop esi
xor eax, eax
pop ebx
add esp, 0x22c
ret
mov ecx, dword [eax + 0x18]
cmp ecx, edx
je 0x422aa3
mov eax, ecx
cmp eax, esi
jne 0x422a8a
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x22c
ret
mov ecx, dword [edx + 0x18]
mov dword [eax + 0x18], ecx
mov dword [edx + 0x18], esi
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x22c
ret
mov eax, dword [esp + 0x244]
test eax, eax
je 0x422ad1
mov edx, dword [0x45bf1c]
mov dword [eax + 0x18], edx
mov dword [0x45bf1c], eax
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x22c
ret
mov eax, dword [esp + 0x244]
cmp eax, 0xffffffff
jne 0x422af1
mov eax, dword [0x4528ac]
dec eax
jmp 0x422afc
cmp eax, 1
jne 0x422b01
mov eax, dword [0x4528ac]
inc eax
mov dword [0x4528ac], eax
mov eax, dword [0x4528ac]
test eax, eax
jge 0x4231d8
xor eax, eax
pop edi
pop esi
mov dword [0x4528ac], eax
pop ebx
add esp, 0x22c
ret
mov eax, dword [esp + 0x244]
mov ecx, dword [0x45bf14]
neg eax
sbb eax, eax
pop edi
not eax
pop esi
and eax, ecx
pop ebx
add esp, 0x22c
ret
pop edi
pop esi
mov eax, 0x445d00
pop ebx
add esp, 0x22c
ret
mov ebx, dword [esp + 0x244]
mov ecx, dword [esp + 0x23c]
xor eax, eax
mov edi, dword [sym.imp.USER32.dll_EnableWindow]
cmp ebx, 0xdeadbeef
setne al
mov esi, eax
push esi
push ecx
call edi
mov edx, dword [0x45bf04]
push esi
push edx
call edi
mov eax, dword [0x45c0a4]
push esi
push eax
call edi
mov ecx, dword [0x45bdf4]
push esi
push ecx
call edi
mov edx, dword [0x45c0b4]
push esi
push edx
call edi
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x22c
ret
mov eax, dword [esp + 0x244]
mov ecx, dword [eax + 4]
mov edx, dword [eax]
push ecx
push edx
call fcn.00419dd0
add esp, 8
pop edi
pop esi
pop ebx
add esp, 0x22c
ret
pop edi
pop esi
mov eax, 0x45e580
pop ebx
add esp, 0x22c
ret
mov eax, dword [esp + 0x244]
push eax
push 0xffffffffffffffff
call fcn.0042f842
add esp, 8
pop edi
pop esi
pop ebx
add esp, 0x22c
ret
mov ecx, dword [esp + 0x244]
push 0
push ecx
push 1
call fcn.0042f695
add esp, 0xc
call fcn.00431ae3
pop edi
pop esi
mov eax, 1
pop ebx
add esp, 0x22c
ret
mov edx, dword [esp + 0x244]
lea ecx, [esp + 0x10]
xor edi, edi
lea eax, [esp + 0x134]
push ecx
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], edi
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], 0x450890
mov dword [esp + 0x24], 1
mov dword [esp + 0x28], 0x41e010
mov dword [esp + 0x2c], edi
call dword [sym.imp.SHELL32.dll_SHBrowseForFolderA]
mov esi, eax
cmp esi, edi
je 0x422cf4
lea edx, [esp + 0x30]
push edx
push esi
call dword [sym.imp.SHELL32.dll_SHGetPathFromIDListA]
push esi
call fcn.00435e44
add esp, 4
lea eax, [esp + 0x30]
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
call fcn.004305d0
mov cl, byte [0x45dea7]
lea edx, [esp + 0x30]
not cl
shr ecx, 1
and ecx, 1
push ecx
push edx
call fcn.00431768
mov al, byte [0x45dea7]
add esp, 8
test al, 1
je 0x422cb9
push edi
push 2
call fcn.00431405
add esp, 8
push edi
call fcn.00430e77
mov al, byte [0x45dea4]
add esp, 4
test al, al
je 0x422cd8
push 0xc4653600
call fcn.004311db
add esp, 4
push 0x45bbe0
push 0x45c0c0
call fcn.00430cb4
add esp, 8
call fcn.00431ae3
call fcn.0042fb16
pop edi
pop esi
mov eax, 1
pop ebx
add esp, 0x22c
ret
mov eax, dword [0x45c0b8]
mov esi, dword [sym.imp.USER32.dll_GetSubMenu]
push 7
push 3
push eax
call esi
push eax
call esi
mov esi, eax
call dword [sym.imp.USER32.dll_GetMessagePos]
mov ecx, dword [esp + 0x23c]
mov dword [esp + 0xc], eax
movsx edx, word [esp + 0xe]
push 0
push ecx
movsx eax, ax
push 0
push edx
push eax
push 2
push esi
call dword [sym.imp.USER32.dll_TrackPopupMenu]
pop edi
pop esi
mov eax, 1
pop ebx
add esp, 0x22c
ret
mov eax, dword [esp + 0x244]
mov ecx, dword [eax + 0xc]
mov edx, dword [eax + 8]
push ecx
mov ecx, dword [eax + 4]
push edx
mov edx, dword [eax]
push ecx
push edx
call fcn.0041a2f0
add esp, 0x10
mov eax, 1
pop edi
pop esi
pop ebx
add esp, 0x22c
ret
mov esi, dword [esp + 0x244]
cmp dword [esi + 4], 2
jne 0x422d9c
cmp byte [0x45e9e4], 1
jne 0x422d9c
mov dword [esi + 4], 0
mov eax, dword [esi + 0x10]
mov edx, dword [esi]
push eax
mov eax, dword [esi + 4]
xor ecx, ecx
test eax, eax
sete cl
push ecx
push edx
call fcn.00430631
push eax
call fcn.0042ff7f
add esp, 0xc
push eax
mov eax, dword [esi + 0xc]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
call fcn.0042ff79
mov dword [esi + 8], eax
pop edi
pop esi
mov eax, 1
pop ebx
add esp, 0x22c
ret
mov eax, dword [esp + 0x244]
mov ecx, dword [eax + 8]
mov edx, dword [eax + 4]
mov eax, dword [eax]
push ecx
push edx
push eax
call fcn.0041a3f0
add esp, 0xc
pop edi
pop esi
pop ebx
add esp, 0x22c
ret
pop edi
pop esi
pop ebx
add esp, 0x22c
jmp 0x41a520
mov ecx, dword [0x45ad64]
mov eax, dword [esp + 0x244]
mov esi, dword [sym.imp.USER32.dll_SetWindowLongA]
mov dword [0x452890], eax
test ecx, ecx
je 0x422e40
test eax, eax
jne 0x422e35
mov eax, dword [0x45b980]
push eax
push 0xfffffffffffffff8
push ecx
call esi
mov eax, dword [0x452890]
mov ecx, dword [0x45f408]
test ecx, ecx
je 0x422e5e
test eax, eax
jne 0x422e53
mov eax, dword [0x45b980]
push eax
push 0xfffffffffffffff8
push ecx
call esi
mov eax, dword [0x452890]
mov ecx, dword [0x45c228]
test ecx, ecx
je 0x422e7c
test eax, eax
jne 0x422e71
mov eax, dword [0x45b980]
push eax
push 0xfffffffffffffff8
push ecx
call esi
mov eax, dword [0x452890]
mov ecx, dword [0x45c22c]
test ecx, ecx
je 0x422e95
test eax, eax
jne 0x422e8f
mov eax, dword [0x45b980]
push eax
push 0xfffffffffffffff8
push ecx
call esi
pop edi
pop esi
mov eax, 1
pop ebx
add esp, 0x22c
ret
cmp eax, 0x1fd
jg 0x42304d
je 0x42302e
add eax, 0xfffffe84
cmp eax, 0x80
ja case.0x423076.514
xor ecx, ecx
mov cl, byte [eax + 0x423450]
jmp dword [ecx*4 + 0x42342c]
mov edx, dword [esp + 0x244]
push 1
mov dword [0x45ad60], edx
call fcn.00427280
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebx
add esp, 0x22c
ret
mov eax, dword [esp + 0x244]
test eax, eax
jne 0x422f1e
push str.genex.bmp
push 0xfc
call fcn.0040c780
add esp, 8
pop edi
pop esi
pop ebx
add esp, 0x22c
ret
cmp eax, 1
jne 0x422f53
mov al, byte [0x4594a8]
test al, al
jne 0x422f44
push 0
push 0
push 0x6f
call fcn.004394a8
add esp, 0xc
pop edi
pop esi
pop ebx
add esp, 0x22c
ret
pop edi
pop esi
mov eax, 0x4594a8
pop ebx
add esp, 0x22c
ret
cmp eax, 2
jne 0x422f77
push 0
push 0
push 0x70
call fcn.004394a8
push eax
call dword [sym.imp.MSVCRT.dll_atoi]
add esp, 0x10
pop edi
pop esi
pop ebx
add esp, 0x22c
ret
xor ecx, ecx
cmp eax, 3
mov eax, dword [0x44ad98]
pop edi
setne cl
dec ecx
pop esi
and eax, ecx
pop ebx
add esp, 0x22c
ret
mov eax, dword [0x45c220]
pop edi
pop esi
pop ebx
add esp, 0x22c
ret
pop edi
pop esi
pop ebx
add esp, 0x22c
jmp 0x441890
mov eax, dword [esp + 0x244]
test eax, eax
je 0x422fcc
push eax
call fcn.004151e0
add esp, 4
pop edi
pop esi
pop ebx
add esp, 0x22c
ret
pop edi
pop esi
mov eax, fcn.004151e0
pop ebx
add esp, 0x22c
ret
mov edx, dword [esp + 0x244]
push edx
call fcn.0040b2c0
add esp, 4
pop edi
pop esi
pop ebx
add esp, 0x22c
ret
mov eax, dword [esp + 0x244]
push eax
call fcn.0040bdb0
add esp, 4
mov eax, 1
pop edi
pop esi
pop ebx
add esp, 0x22c
ret
mov ecx, dword [esp + 0x244]
push ecx
call fcn.0040be40
add esp, 4
pop edi
pop esi
pop ebx
add esp, 0x22c
ret
mov edx, dword [esp + 0x244]
push edx
call fcn.0040be80
add esp, 4
mov eax, 1
pop edi
pop esi
pop ebx
add esp, 0x22c
ret
cmp eax, 0x320
jg 0x423139
je 0x423109
add eax, 0xfffffe02
cmp eax, 0x9c
ja case.0x423076.514
xor ecx, ecx
mov cl, byte [eax + 0x4234e8]
jmp dword [ecx*4 + 0x4234d4]
mov eax, dword [0x44d800]
pop edi
pop esi
pop ebx
add esp, 0x22c
ret
push 0x45190c
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov esi, dword [0x451938]
test esi, esi
je 0x4230bc
mov ebx, dword [esp + 0x244]
push ebx
push esi
call dword [ebx]
mov edi, eax
add esp, 8
test edi, edi
jne 0x4230d3
mov esi, dword [esi + 0x1c]
test esi, esi
jne 0x4230a8
push 0x45190c
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x22c
ret
push 0x45190c
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, edi
pop edi
pop esi
pop ebx
add esp, 0x22c
ret
mov edx, dword [esp + 0x244]
push edx
call fcn.0040be10
add esp, 4
mov eax, 1
pop edi
pop esi
pop ebx
add esp, 0x22c
ret
mov eax, dword [esp + 0x244]
test eax, eax
jne 0x423123
pop edi
pop esi
mov eax, 0x434200
pop ebx
add esp, 0x22c
ret
dec eax
pop edi
neg eax
sbb eax, eax
pop esi
not eax
and eax, 0x4341f0
pop ebx
add esp, 0x22c
ret
sub eax, 0x384
je 0x4231d3
sub eax, 0xc9
je case.0x422101.2
dec eax
je case.0x422101.3
pop edi
pop esi
mov eax, 1
pop ebx
add esp, 0x22c
ret
push 0
call fcn.00430e77
mov al, byte [0x45dea4]
add esp, 4
test al, al
je 0x42317a
push 0
call fcn.004311db
add esp, 4
push 0x45bbe0
push 0x45c0c0
call fcn.00430cb4
add esp, 8
call fcn.0042fb16
call fcn.00431ae3
pop edi
pop esi
mov eax, 1
pop ebx
add esp, 0x22c
ret
call fcn.0043051a
xor ecx, ecx
test eax, eax
setg cl
mov esi, ecx
call fcn.004305d0
push 0
call fcn.004311db
add esp, 4
call fcn.00431ae3
mov eax, esi
pop edi
pop esi
pop ebx
add esp, 0x22c
ret
mov eax, dword [0x44ae78]
pop edi
pop esi
pop ebx
add esp, 0x22c
ret
mov eax, dword [0x459fc4]
ret