Function at 0x4053b7
Capabilities:
Set current directory

Disassembly:
push ebp
lea ebp, [esp - 0x384]
sub esp, 0x404
mov eax, dword [0x40fc70]
or dword [0x4104f2], 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 [0x410c78], eax
call esi
mov esi, dword [ebp + 0x38c]
mov dword [0x4104e0], eax
push 0x200
lea eax, [ebp - 0x74]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
je 0x405435
lea ecx, [ebp - 0x74]
call fcn.00401076
test eax, eax
je 0x40542b
mov byte [eax], 0
lea eax, [ebp - 0x74]
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
push 0x8001
mov dword [0x410300], esi
call dword [sym.imp.KERNEL32.dll_SetErrorMode]
call dword [sym.imp.KERNEL32.dll_GetVersion]
push dword [0x40f9c4]
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 [0x40f9e0]
mov dword [0x410dec], eax
push esi
call edi
push eax
call ebx
push dword [0x40f9d0]
mov dword [0x410e0c], eax
push esi
call edi
push eax
call ebx
push dword [0x40f9d4]
mov dword [0x410dfc], eax
push esi
call edi
push eax
call ebx
push dword [0x40f9e4]
mov dword [0x410e00], eax
push esi
call edi
push eax
call ebx
push dword [0x40f9d8]
mov dword [0x410e10], eax
push esi
call edi
push eax
call ebx
push dword [0x40f9c8]
mov dword [0x410e04], eax
push esi
call edi
push eax
call ebx
push 0x105
mov esi, 0x410c88
push esi
push dword [ebp + 0x38c]
mov dword [0x410df0], eax
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
push 0x105
push esi
call fcn.0040344f
push 0
push 0x410b28
call fcn.004074a0
add esp, 0x10
test eax, eax
jne 0x4058d6
call fcn.00403d4a
call fcn.00401554
test eax, eax
jne 0x405527
mov ecx, dword [0x40f104]
jmp 0x40569c
mov esi, dword [ebp + 0x394]
push 0x101
push 0
push 0x4103d0
call fcn.00401195
mov eax, esi
add esp, 0xc
cmp byte [eax], 0
je 0x405624
push 5
push str._info
push esi
call fcn.0040751b
add esp, 0xc
test eax, eax
je 0x405645
push 6
push str._args
push esi
call fcn.0040751b
add esp, 0xc
test eax, eax
je 0x4055cb
push 6
push 0x40c620
push esi
call fcn.0040751b
add esp, 0xc
test eax, eax
je 0x4055cb
cmp byte [esi], 0x20
je 0x40561a
push esi
mov eax, dword [0x410df8]
mov ecx, dword [0x40f140]
add ecx, eax
push ecx
lea eax, [ebp + 0x18c]
push 0x1f4
push eax
call fcn.0040aa91
add esp, 0x10
push 0
push str.WinZip_Self_Extractor
lea eax, [ebp + 0x18c]
push eax
jmp 0x405652
lea eax, [esi + 6]
push eax
mov dword [ebp - 0x78], esi
mov dword [ebp - 0x7c], eax
call fcn.00406ea0
test eax, eax
pop ecx
je 0x405595
mov ecx, dword [ebp - 0x7c]
cmp byte [ecx], 0x22
jne 0x405595
inc ecx
mov al, byte [ecx]
mov esi, ecx
xor edx, edx
jmp 0x4055f8
cmp al, 0x22
je 0x4055fc
inc edx
inc esi
mov al, byte [esi]
test al, al
jne 0x4055f0
test edx, edx
je 0x405656
cmp byte [esi], 0
je 0x405656
push edx
push ecx
push 0x101
push 0x4103d0
call fcn.0040aa70
test eax, eax
jne 0x405656
inc esi
cmp byte [esi], 0
jne 0x40554c
xor eax, eax
cmp dword [ebp - 0x80], 0x80000000
mov dword [0x410e1c], eax
jae 0x40565e
cmp byte [ebp - 0x80], 4
jb 0x40565e
xor esi, esi
inc esi
mov dword [0x410e1c], esi
jmp 0x405661
push 0
push str.WinZip_Self_Extractor
push dword [0x410e10]
push 0
jmp 0x4056b1
push dword [ebp - 0x78]
jmp 0x405596
xor esi, esi
inc esi
cmp dword [0x410e1c], eax
jne 0x405687
cmp byte [ebp - 0x80], 4
jae 0x405687
mov ecx, dword [0x410df8]
mov edx, dword [0x40f078]
push eax
push str.WinZip_Self_Extractor
add edx, ecx
push edx
push eax
jmp 0x4056b1
cmp word [0x40fa32], ax
mov dword [0x410e1c], esi
jne 0x4056bc
mov ecx, dword [0x40f040]
mov eax, dword [0x410df8]
push 0x10
push str.WinZip_Self_Extractor
add ecx, eax
push ecx
push dword [0x410e14]
call dword [sym.imp.USER32.dll_MessageBoxA]
jmp 0x4058d6
mov ecx, dword [0x40fa24]
and cl, 0x40
sub cl, 0x40
neg cl
push 4
push eax
push dword [0x40fa04]
sbb ecx, ecx
inc ecx
mov dword [0x410de4], ecx
call fcn.00401195
mov edx, dword [0x40fa24]
mov eax, dword [0x40fa04]
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.00405ba9
mov esi, dword [0x410e08]
test esi, esi
mov ecx, dword [0x40fa24]
je 0x405798
test ecx, 0x400000
jne 0x405798
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 0x405760
mov ecx, dword [0x410e0c]
cmp byte [ecx], 0
je 0x405760
or eax, 0x2000
push eax
push ecx
jmp 0x40576b
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 0x4058d6
cmp eax, 2
je 0x4058d6
push dword [0x410e08]
call dword [sym.imp.KERNEL32.dll_LocalFree]
mov ecx, dword [0x40fa24]
test ch, 2
push dword [ebp + 0x394]
je 0x4057ad
mov dword [0x410de0], 1
call fcn.00401bad
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 0x405817
test eax, eax
je 0x405817
mov ecx, dword [0x410df8]
mov edx, dword [0x40f144]
push esi
add edx, ecx
push edx
push eax
call fcn.00401148
add esp, 0xc
push 0
push 0x40499e
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.00401d7a
push dword [0x410dec]
mov esi, dword [sym.imp.KERNEL32.dll_GlobalHandle]
call esi
push eax
call edi
push dword [0x410dec]
call esi
push eax
call ebx
push dword [0x410e0c]
call esi
push eax
call edi
push dword [0x410e0c]
call esi
push eax
call ebx
push dword [0x410dfc]
call esi
push eax
call edi
push dword [0x410dfc]
call esi
push eax
call ebx
push dword [0x410e00]
call esi
push eax
call edi
push dword [0x410e00]
call esi
push eax
call ebx
push dword [0x410e10]
call esi
push eax
call edi
push dword [0x410e10]
call esi
push eax
call ebx
push dword [0x410e04]
call esi
push eax
call edi
push dword [0x410e04]
call esi
push eax
call ebx
push dword [0x410df0]
call esi
push eax
call edi
push dword [0x410df0]
call esi
push eax
call ebx
mov eax, dword [0x410df8]
test eax, eax
je 0x4058d6
push eax
call esi
push eax
call edi
push dword [0x410df8]
call esi
push eax
call ebx
mov ecx, dword [ebp + 0x380]
xor eax, eax
call fcn.00406c7b
pop edi
pop esi
pop ebx
add ebp, 0x384
leave
ret 0x10