Function at 0x40321c
Capabilities:
Set current directory

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x208
push ebx
push esi
push edi
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 [0x408948], eax
call esi
mov esi, dword [ebp + 8]
mov dword [0x408660], eax
lea eax, [ebp - 0x208]
push 0x200
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
je 0x40328a
lea eax, [ebp - 0x208]
push eax
call fcn.00401081
test eax, eax
je 0x40327d
and byte [eax], 0
lea eax, [ebp - 0x208]
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
push 0x8001
mov dword [0x407e84], esi
call dword [sym.imp.KERNEL32.dll_SetErrorMode]
call dword [sym.imp.KERNEL32.dll_GetVersion]
push str.Shell32.dll
mov dword [ebp - 4], eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
test eax, eax
mov dword [0x4080bc], eax
je 0x4032ef
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.SHBrowseForFolder
push eax
call esi
push str.SHGetMalloc
mov dword [0x4080c0], eax
push dword [0x4080bc]
call esi
push str.SHGetPathFromIDList
mov dword [0x4080c4], eax
push dword [0x4080bc]
call esi
mov dword [0x4080c8], eax
mov esi, dword [sym.imp.KERNEL32.dll_GlobalAlloc]
push 0x41
push 0x40
call esi
mov edi, dword [sym.imp.KERNEL32.dll_GlobalLock]
push eax
call edi
mov ebx, 0x101
mov dword [0x4080b0], eax
push ebx
push 0x40
call esi
push eax
call edi
push ebx
push 0x40
pop ebx
mov dword [0x4080a4], eax
push ebx
call esi
push eax
call edi
push 0x200
push ebx
mov dword [0x4080a8], eax
call esi
push eax
call edi
push 0x204
push ebx
mov dword [0x4080b4], eax
call esi
push eax
call edi
push 0x1f4
push ebx
mov dword [0x4080ac], eax
call esi
push eax
call edi
mov ebx, 0x4086c0
push 0x105
push ebx
mov dword [0x408098], eax
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
push ebx
call fcn.0040313b
pop ecx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push 0
push 0x408900
call fcn.00405604
pop ecx
test eax, eax
pop ecx
jne 0x40361f
call fcn.00402de5
call fcn.0040317c
test eax, eax
jne 0x4033af
push 0x10
push str.WinZip_Self_Extractor
push 0x27
jmp 0x403433
mov ebx, dword [ebp + 0x10]
cmp byte [ebx], 0
je 0x4033df
push 5
push str._info
push ebx
call fcn.00401193
add esp, 0xc
test eax, eax
je 0x4033ce
inc ebx
jmp 0x4033b2
push 0
push str.WinZip_Self_Extractor
push dword [0x4080b4]
push 0
jmp 0x40343f
xor eax, eax
cmp dword [ebp - 4], 0x80000000
push 1
mov dword [0x4080b8], eax
pop ebx
jae 0x4033fe
cmp byte [ebp - 4], 4
jb 0x4033fe
mov dword [0x4080b8], ebx
cmp dword [0x4080b8], eax
jne 0x40341c
cmp byte [ebp - 4], 4
jae 0x40341c
push eax
push str.WinZip_Self_Extractor
push 0xa
call fcn.004011fa
push eax
jmp 0x4033db
cmp word [0x4079b2], ax
mov dword [0x4080b8], ebx
jne 0x40344a
push 0x10
push str.WinZip_Self_Extractor
push eax
call fcn.004011fa
push eax
push dword [0x408940]
call dword [sym.imp.USER32.dll_MessageBoxA]
jmp 0x40361f
mov eax, dword [0x4079a4]
push dword [ebp + 8]
mov ecx, eax
and ecx, 2
sub cl, 2
neg cl
sbb ecx, ecx
inc ecx
mov dword [0x407944], ecx
mov ecx, 0x100
and eax, ecx
sub eax, ecx
neg eax
sbb eax, eax
inc eax
mov dword [0x408074], eax
call fcn.00404034
mov ecx, dword [0x407f50]
test ecx, ecx
je 0x4034f6
mov edx, dword [0x4079a4]
mov ebx, edx
mov eax, edx
and ebx, 0x100000
and eax, 0x80000
neg ebx
sbb ebx, ebx
and ebx, 0xfffffffd
add ebx, 4
neg eax
sbb eax, eax
and eax, ebx
test dl, 0x10
je 0x4034c3
mov edx, dword [0x4080b0]
cmp byte [edx], 0
je 0x4034c3
or ah, 0x20
push eax
push edx
jmp 0x4034cc
or ah, 0x20
push eax
push str.WinZip_Self_Extractor
push ecx
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
cmp eax, 7
je 0x40361f
cmp eax, 2
je 0x40361f
push dword [0x407f50]
call dword [sym.imp.KERNEL32.dll_LocalFree]
push 1
pop ebx
test byte [0x4079a5], 2
je 0x403505
mov dword [0x408094], ebx
push dword [ebp + 0x10]
call fcn.00403027
pop ecx
push 0x400
push 0x42
call esi
mov esi, eax
push esi
call edi
mov edi, dword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov ebx, dword [sym.imp.KERNEL32.dll_GlobalFree]
test esi, esi
mov dword [ebp - 8], eax
je 0x403566
test eax, eax
je 0x403566
push 0x400
push 0x35
call fcn.004011fa
push eax
push dword [ebp - 8]
call fcn.0040116b
add esp, 0xc
push 0
push 0x402595
push 0
push dword [ebp - 8]
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_DialogBoxIndirectParamA]
push esi
call edi
push esi
call ebx
call fcn.00402fce
push dword [0x4080b0]
mov esi, dword [sym.imp.KERNEL32.dll_GlobalHandle]
call esi
push eax
call edi
push dword [0x4080b0]
call esi
push eax
call ebx
push dword [0x4080a4]
call esi
push eax
call edi
push dword [0x4080a4]
call esi
push eax
call ebx
push dword [0x4080a8]
call esi
push eax
call edi
push dword [0x4080a8]
call esi
push eax
call ebx
push dword [0x4080b4]
call esi
push eax
call edi
push dword [0x4080b4]
call esi
push eax
call ebx
push dword [0x4080ac]
call esi
push eax
call edi
push dword [0x4080ac]
call esi
push eax
call ebx
push dword [0x408098]
call esi
push eax
call edi
push dword [0x408098]
call esi
push eax
call ebx
mov eax, dword [0x4080a0]
test eax, eax
je 0x40360f
push eax
call esi
push eax
call edi
push dword [0x4080a0]
call esi
push eax
call ebx
mov eax, dword [0x4080bc]
test eax, eax
je 0x40361f
push eax
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
pop edi
pop esi
xor eax, eax
pop ebx
leave
ret 0x10