Function at 0x404c9d
Capabilities:
Set current directory

Disassembly:
push ebp
lea ebp, [esp - 0x384]
sub esp, 0x404
mov eax, dword [0x40ebe8]
or dword [0x40f472], 0xffffffff
push ebx
push esi
push edi
mov dword [ebp + 0x380], eax
call dword [sym.imp.COMCTL32.dll_InitCommonControls]
mov esi, dword [sym.imp.USER32.dll_LoadCursorA]
push 0x7f02
push 0
call esi
push 0x7f00
push 0
mov dword [0x40fbf8], eax
call esi
mov esi, dword [ebp + 0x38c]
mov dword [0x40f460], eax
push 0x200
lea eax, [ebp - 0x74]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
je 0x404d1b
lea ecx, [ebp - 0x74]
call fcn.00401076
test eax, eax
je 0x404d11
mov byte [eax], 0
lea eax, [ebp - 0x74]
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
push 0x8001
mov dword [0x40f280], esi
call dword [sym.imp.KERNEL32.dll_SetErrorMode]
call dword [sym.imp.KERNEL32.dll_GetVersion]
push dword [0x40e954]
mov edi, dword [sym.imp.KERNEL32.dll_GlobalAlloc]
push 0x40
pop esi
push esi
mov dword [ebp - 0x80], eax
call edi
mov ebx, dword [sym.imp.KERNEL32.dll_GlobalLock]
push eax
call ebx
push dword [0x40e944]
mov dword [0x40fde4], eax
push esi
call edi
push eax
call ebx
push dword [0x40e948]
mov dword [0x40fdd4], eax
push esi
call edi
push eax
call ebx
push dword [0x40e958]
mov dword [0x40fdd8], eax
push esi
call edi
push eax
call ebx
push dword [0x40e94c]
mov dword [0x40fde8], eax
push esi
call edi
push eax
call ebx
push dword [0x40e93c]
mov dword [0x40fddc], eax
push esi
call edi
push eax
call ebx
push 0x105
mov esi, 0x40fc70
push esi
push dword [ebp + 0x38c]
mov dword [0x40fdc8], eax
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
push 0x105
push esi
call fcn.00402b85
push 0
push 0x40faa8
call fcn.00406cd0
add esp, 0x10
test eax, eax
jne 0x405195
call fcn.00403681
call fcn.00401533
test eax, eax
jne 0x404dfc
mov ecx, dword [0x40e0dc]
jmp 0x404f71
mov esi, dword [ebp + 0x394]
push 0x101
push 0
push 0x40f350
call fcn.00401195
mov eax, esi
add esp, 0xc
cmp byte [eax], 0
je 0x404ef9
push 5
push str._info
push esi
call fcn.00406d4b
add esp, 0xc
test eax, eax
je 0x404f1a
push 6
push str._args
push esi
call fcn.00406d4b
add esp, 0xc
test eax, eax
je 0x404ea0
push 6
push 0x40c5c4
push esi
call fcn.00406d4b
add esp, 0xc
test eax, eax
je 0x404ea0
cmp byte [esi], 0x20
je 0x404eef
push esi
mov eax, dword [0x40fdd0]
mov ecx, dword [0x40e114]
add ecx, eax
push ecx
lea eax, [ebp + 0x18c]
push 0x1f4
push eax
call fcn.0040a2c1
add esp, 0x10
push 0
push str.WinZip_Self_Extractor
lea eax, [ebp + 0x18c]
push eax
jmp 0x404f27
lea eax, [esi + 6]
push eax
mov dword [ebp - 0x78], esi
mov dword [ebp - 0x7c], eax
call fcn.00406760
test eax, eax
pop ecx
je 0x404e6a
mov ecx, dword [ebp - 0x7c]
cmp byte [ecx], 0x22
jne 0x404e6a
inc ecx
mov al, byte [ecx]
mov esi, ecx
xor edx, edx
jmp 0x404ecd
cmp al, 0x22
je 0x404ed1
inc edx
inc esi
mov al, byte [esi]
test al, al
jne 0x404ec5
test edx, edx
je 0x404f2b
cmp byte [esi], 0
je 0x404f2b
push edx
push ecx
push 0x101
push 0x40f350
call fcn.0040a2a0
test eax, eax
jne 0x404f2b
inc esi
cmp byte [esi], 0
jne 0x404e21
xor eax, eax
cmp dword [ebp - 0x80], 0x80000000
mov dword [0x40fdf4], eax
jae 0x404f33
cmp byte [ebp - 0x80], 4
jb 0x404f33
xor esi, esi
inc esi
mov dword [0x40fdf4], esi
jmp 0x404f36
push 0
push str.WinZip_Self_Extractor
push dword [0x40fde8]
push 0
jmp 0x404f86
push dword [ebp - 0x78]
jmp 0x404e6b
xor esi, esi
inc esi
cmp dword [0x40fdf4], eax
jne 0x404f5c
cmp byte [ebp - 0x80], 4
jae 0x404f5c
mov ecx, dword [0x40fdd0]
mov edx, dword [0x40e068]
push eax
push str.WinZip_Self_Extractor
add edx, ecx
push edx
push eax
jmp 0x404f86
cmp word [0x40e9a6], ax
mov dword [0x40fdf4], esi
jne 0x404f91
mov ecx, dword [0x40e040]
mov eax, dword [0x40fdd0]
push 0x10
push str.WinZip_Self_Extractor
add ecx, eax
push ecx
push dword [0x40fdec]
call dword [sym.imp.USER32.dll_MessageBoxA]
jmp 0x405195
mov ecx, dword [0x40e998]
and cl, 2
sub cl, 2
neg cl
push 4
push eax
push dword [0x40e978]
sbb ecx, ecx
inc ecx
mov dword [0x40e95c], ecx
call fcn.00401195
mov edx, dword [0x40e998]
mov eax, dword [0x40e978]
mov ecx, 0x100
and edx, ecx
sub edx, ecx
add esp, 0xc
push dword [ebp + 0x38c]
neg edx
sbb edx, edx
inc edx
xor edx, dword [eax + 0x28]
and edx, esi
xor dword [eax + 0x28], edx
call fcn.00405468
mov esi, dword [0x40fde0]
test esi, esi
mov ecx, dword [0x40e998]
je 0x40506d
test ecx, 0x400000
jne 0x40506d
mov edx, ecx
and edx, 0x100000
mov eax, ecx
and eax, 0x80000
neg edx
sbb edx, edx
and edx, 0xfffffffd
add edx, 4
neg eax
sbb eax, eax
and eax, edx
test cl, 0x10
je 0x405035
mov ecx, dword [0x40fde4]
cmp byte [ecx], 0
je 0x405035
or eax, 0x2000
push eax
push ecx
jmp 0x405040
or eax, 0x2000
push eax
push str.WinZip_Self_Extractor
push esi
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
cmp eax, 7
je 0x405195
cmp eax, 2
je 0x405195
push dword [0x40fde0]
call dword [sym.imp.KERNEL32.dll_LocalFree]
mov ecx, dword [0x40e998]
test ch, 2
push dword [ebp + 0x394]
je 0x405082
mov dword [0x40fdc4], 1
call fcn.00402e1d
pop ecx
mov esi, 0x400
push esi
push 0x42
call edi
push eax
mov dword [ebp - 0x78], eax
call ebx
cmp dword [ebp - 0x78], 0
mov edi, dword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov ebx, dword [sym.imp.KERNEL32.dll_GlobalFree]
mov dword [ebp - 0x7c], eax
je 0x4050ec
test eax, eax
je 0x4050ec
mov ecx, dword [0x40fdd0]
mov edx, dword [0x40e118]
push esi
add edx, ecx
push edx
push eax
call fcn.00401148
add esp, 0xc
push 0
push 0x4042d5
push 0
push dword [ebp - 0x7c]
push dword [ebp + 0x38c]
call dword [sym.imp.USER32.dll_DialogBoxIndirectParamA]
push dword [ebp - 0x78]
call edi
push dword [ebp - 0x78]
call ebx
call fcn.00401b8c
push dword [0x40fde4]
mov esi, dword [sym.imp.KERNEL32.dll_GlobalHandle]
call esi
push eax
call edi
push dword [0x40fde4]
call esi
push eax
call ebx
push dword [0x40fdd4]
call esi
push eax
call edi
push dword [0x40fdd4]
call esi
push eax
call ebx
push dword [0x40fdd8]
call esi
push eax
call edi
push dword [0x40fdd8]
call esi
push eax
call ebx
push dword [0x40fde8]
call esi
push eax
call edi
push dword [0x40fde8]
call esi
push eax
call ebx
push dword [0x40fddc]
call esi
push eax
call edi
push dword [0x40fddc]
call esi
push eax
call ebx
push dword [0x40fdc8]
call esi
push eax
call edi
push dword [0x40fdc8]
call esi
push eax
call ebx
mov eax, dword [0x40fdd0]
test eax, eax
je 0x405195
push eax
call esi
push eax
call edi
push dword [0x40fdd0]
call esi
push eax
call ebx
mov ecx, dword [ebp + 0x380]
xor eax, eax
call fcn.0040653a
pop edi
pop esi
pop ebx
add ebp, 0x384
leave
ret 0x10