Function at 0x4093e0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x7c
mov ecx, dword [0x42928c]
push ebx
push ebp
push esi
xor esi, esi
xor ebp, ebp
xor ebx, ebx
cmp ecx, 1
push edi
lea eax, [esp + 0x6c]
setg bl
xor edi, edi
mov dword [esp + 0x10], ebp
mov dword [esp + 0x40], ebx
mov dword [esp + 0x38], edi
mov dword [esp + 0x1c], esi
mov dword [esp + 0x30], esi
mov dword [0x429b00], eax
call fcn.00411cb0
mov dword [esp + 0x44], eax
call fcn.00411cf0
mov byte [esp + 0x3c], al
mov eax, dword [0x429274]
cmp eax, 2
jge 0x40948b
mov eax, dword [0x429268]
push edi
test eax, eax
je 0x409455
mov ecx, dword [ebx*8 + 0x4251e4]
mov edx, dword [ebx*8 + 0x4251e0]
push ecx
push edx
push str._s_______case_n_s___conversion__n
jmp 0x40946a
mov eax, dword [ebx*8 + 0x4251e4]
mov ecx, dword [ebx*8 + 0x4251e0]
push eax
push ecx
push 0x4251f8
push 0x429b04
call fcn.00412920
add esp, 0x10
push eax
push 0x429b04
push 0x429240
call dword [int.00439d6c]
add esp, 0x10
push 4
push 0x4292f0
mov dword [esp + 0x28], 1
call fcn.004068d0
add esp, 8
test eax, eax
je 0x40995f
jmp 0x4094b4
mov esi, dword [esp + 0x30]
mov edi, dword [esp + 0x38]
push 4
push 0x425198
push 0x4292f0
call fcn.00412a00
add esp, 0xc
test eax, eax
jne 0x40996c
call fcn.0040b510
test eax, eax
jne 0x409b3b
mov edx, dword [0x439b7c]
push 2
and edx, 0xffff
push edx
call fcn.00407860
add esp, 8
test eax, eax
je 0x409507
mov ebp, eax
cmp eax, 1
mov dword [esp + 0x10], ebp
jg 0x409b3b
mov eax, dword [0x439b40]
test eax, eax
je 0x409523
push eax
call fcn.00413326
add esp, 4
mov dword [0x439b40], 0
xor eax, eax
push 3
mov ax, word [0x439b7e]
push eax
call fcn.00407860
add esp, 8
test eax, eax
je 0x409549
mov ebp, eax
cmp eax, 1
mov dword [esp + 0x10], ebp
jg 0x409b3b
mov eax, dword [0x4292c4]
test eax, eax
jne 0x40961c
mov eax, dword [0x4292bc]
test eax, eax
je 0x409595
xor edi, edi
xor esi, esi
test eax, eax
jbe 0x4095e2
mov edx, dword [0x4292e8]
mov ecx, dword [0x429254]
push ecx
mov eax, dword [edx + esi*4]
push eax
push 0x439c08
call fcn.00409fb0
add esp, 0xc
test eax, eax
jne 0x409595
mov eax, dword [0x4292bc]
inc esi
cmp esi, eax
jb 0x409567
jmp 0x4095d5
mov eax, dword [0x4292c0]
xor esi, esi
test eax, eax
mov edi, 1
jbe 0x4095d5
mov edx, dword [0x4292ec]
mov ecx, dword [0x429254]
push ecx
mov eax, dword [edx + esi*4]
push eax
push 0x439c08
call fcn.00409fb0
add esp, 0xc
test eax, eax
jne 0x4095d3
mov eax, dword [0x4292c0]
inc esi
cmp esi, eax
jb 0x4095a5
jmp 0x4095d5
xor edi, edi
mov eax, dword [0x4292c4]
test eax, eax
jne 0x40961c
test edi, edi
jne 0x40961c
mov eax, dword [0x439b80]
test ax, ax
je 0x40993f
and eax, 0xffff
push 0
push eax
call fcn.00407860
add esp, 8
test eax, eax
je 0x40993f
mov ebp, eax
cmp eax, 1
mov dword [esp + 0x10], ebp
jg 0x409b3b
jmp 0x40993f
mov eax, dword [0x439b40]
test eax, eax
je 0x409681
mov edx, dword [0x439b6c]
lea ecx, [esp + 0x60]
push 0
push ecx
xor ecx, ecx
push edx
mov cx, word [0x439b7e]
push 1
push ecx
push eax
call fcn.0040b830
add esp, 0x18
test al, 1
je 0x409681
lea edx, [esp + 0x64]
push edx
call fcn.00413e3e
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x409681
mov eax, dword [ecx + 0x14]
mov ebp, dword [ecx + 0x10]
cdq
mov esi, 0x64
inc ebp
idiv esi
mov eax, dword [ecx + 8]
mov ebx, dword [ecx + 0xc]
mov ecx, dword [ecx + 4]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x18], edx
jmp 0x4096be
mov ecx, dword [0x439b6c]
xor edx, edx
mov eax, ecx
mov esi, 0x64
shr eax, 0x19
add eax, 0x50
mov ebp, ecx
div esi
mov eax, ecx
mov ebx, ecx
shr eax, 0xb
shr ebp, 0x15
shr ebx, 0x10
and eax, 0x1f
and ebp, 0xf
shr ecx, 5
and ebx, 0x1f
mov dword [esp + 0x2c], eax
and ecx, 0x3f
mov dword [esp + 0x18], edx
mov eax, dword [esp + 0x44]
mov dword [esp + 0x28], ecx
dec eax
je 0x4096d6
dec eax
jne 0x4096dc
mov eax, ebp
mov ebp, edx
mov dword [esp + 0x18], ebx
jmp 0x4096da
mov eax, ebp
mov ebp, ebx
mov ebx, eax
mov cl, byte [0x439b68]
mov eax, dword [0x439b74]
test cl, 1
mov dword [esp + 0x34], eax
je 0x4096f7
sub eax, 0xc
mov dword [esp + 0x34], eax
mov edx, dword [0x439b78]
push eax
push edx
call fcn.00409ec0
add esp, 8
test eax, eax
jge 0x40972a
mov ecx, 5
mov byte [esp + 0x14], 0x2d
sub ecx, eax
mov eax, 0x66666667
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
jmp 0x409743
lea ecx, [eax + 5]
mov eax, 0x66666667
imul ecx
sar edx, 2
mov ecx, edx
mov byte [esp + 0x14], 0x20
shr ecx, 0x1f
add edx, ecx
mov ax, word [0x439b6a]
mov dword [esp + 0x24], edx
cmp ax, 0xd
jae 0x40975a
xor edx, edx
mov dx, ax
jmp 0x40975f
mov edx, 0xd
lea edi, [edx*8 + str.Stored]
or ecx, 0xffffffff
xor eax, eax
lea esi, [esp + 0x4c]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov dword [esp + 0x48], esi
mov eax, ecx
mov esi, edi
mov edi, dword [esp + 0x48]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
cmp edx, 8
rep movsb byte es:[edi], byte [esi]
je 0x4097ba
cmp edx, 9
je 0x4097ba
cmp edx, 0xd
jb 0x4097ce
xor ecx, ecx
lea edx, [esp + 0x50]
mov cx, word [0x439b6a]
push ecx
push 0x4251f0
push edx
call fcn.00412920
add esp, 0xc
jmp 0x4097ce
mov eax, dword [0x439b68]
shr eax, 1
and eax, 3
mov cl, byte [eax + 0x4204c8]
mov byte [esp + 0x51], cl
cmp dword [esp + 0x24], 0x64
jne 0x4097e9
lea edx, [esp + 0x54]
push str.100__
push edx
call fcn.00412920
add esp, 8
jmp 0x40980b
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x24]
and ecx, 0xff
push eax
push ecx
lea edx, [esp + 0x5c]
push str._c_d__
push edx
call fcn.00412920
add esp, 0x10
mov eax, dword [esp + 0x40]
test eax, eax
mov eax, dword [esp + 0x3c]
je 0x409878
mov ecx, dword [0x429b00]
and eax, 0xff
push 0
mov edx, dword [ecx + 0x18]
mov ecx, dword [0x439b70]
and dl, 0x10
neg dl
sbb edx, edx
and edx, 0x3e
add edx, 0x20
push edx
mov edx, dword [esp + 0x30]
push ecx
mov ecx, dword [esp + 0x38]
push edx
mov edx, dword [esp + 0x28]
push ecx
mov ecx, dword [esp + 0x48]
push edx
push eax
push ebx
push eax
lea eax, [esp + 0x78]
push ebp
push eax
mov eax, dword [0x439b78]
lea edx, [esp + 0x78]
push ecx
push edx
push eax
push str._8lu____7s_8lu__4s___02u_c_02u_c_02u__02u:_02u___08lx__c
push 0x429b04
call fcn.00412920
add esp, 0x3c
jmp 0x4098c2
mov ecx, dword [0x429b00]
and eax, 0xff
push 0
mov edx, dword [ecx + 0x18]
mov ecx, dword [esp + 0x2c]
and dl, 0x10
neg dl
sbb edx, edx
and edx, 0x3e
add edx, 0x20
push edx
mov edx, dword [esp + 0x34]
push ecx
mov ecx, dword [esp + 0x24]
push edx
mov edx, dword [0x439b78]
push ecx
push eax
push ebx
push eax
push ebp
push edx
push str._9lu___02u_c_02u_c_02u__02u:_02u___c
push 0x429b04
call fcn.00412920
add esp, 0x2c
push eax
push 0x429b04
push 0x429240
call dword [int.00439d6c]
add esp, 0x10
call fcn.00409f60
mov eax, dword [0x429274]
mov ecx, dword [0x439b80]
neg eax
sbb eax, eax
and ecx, 0xffff
and al, 0xfb
add eax, 5
push eax
push ecx
call fcn.00407860
add esp, 8
test eax, eax
je 0x409910
cmp eax, 1
mov dword [esp + 0x10], eax
jg 0x409b3b
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x1c]
mov edx, dword [0x439b78]
mov esi, dword [esp + 0x30]
mov ebx, dword [esp + 0x40]
mov ebp, dword [esp + 0x10]
add ecx, eax
mov eax, dword [esp + 0x38]
add esi, edx
inc eax
mov dword [esp + 0x30], esi
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x20]
push 4
inc eax
push 0x4292f0
mov dword [esp + 0x28], eax
call fcn.004068d0
add esp, 8
test eax, eax
jne 0x4094ac
pop edi
pop esi
pop ebp
mov eax, 0x33
pop ebx
add esp, 0x7c
ret
mov ecx, dword [esp + 0x20]
dec ecx
cmp cx, word [0x439b96]
jne 0x409adb
cmp dword [0x429274], 2
jge 0x409a7b
mov edx, dword [esp + 0x1c]
push edx
push esi
call fcn.00409ec0
add esp, 8
test eax, eax
jge 0x4099bc
mov ecx, 5
mov byte [esp + 0x14], 0x2d
sub ecx, eax
mov eax, 0x66666667
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
jmp 0x4099d5
lea ecx, [eax + 5]
mov eax, 0x66666667
imul ecx
sar edx, 2
mov ecx, edx
mov byte [esp + 0x14], 0x20
shr ecx, 0x1f
add edx, ecx
cmp edx, 0x64
jne 0x4099ee
lea edx, [esp + 0x54]
push str.100__
push edx
call fcn.00412920
add esp, 8
jmp 0x409a0b
mov eax, dword [esp + 0x14]
push edx
and eax, 0xff
lea ecx, [esp + 0x58]
push eax
push str._c_d__
push ecx
call fcn.00412920
add esp, 0x10
test ebx, ebx
je 0x409a41
cmp edi, 1
mov eax, 0x428d60
je 0x409a1e
mov eax, 0x425080
push 0
push eax
mov eax, dword [esp + 0x24]
lea edx, [esp + 0x5c]
push edi
push edx
push eax
push esi
push str.__________________________________________________________________n_8lu__________8lu__4s_____________________________lu_file_s_n
push 0x429b04
call fcn.00412920
add esp, 0x1c
jmp 0x409a67
cmp edi, 1
mov eax, 0x428d60
je 0x409a50
mov eax, 0x425080
push 0
push eax
push edi
push esi
push str.____________________________________n_9lu____________________lu_file_s_n
push 0x429b04
call fcn.00412920
add esp, 0x14
push eax
push 0x429b04
push 0x429240
call dword [int.00439d6c]
add esp, 0x10
push 4
push 0x4251a0
push 0x4292f0
call fcn.00412a00
add esp, 0xc
test eax, eax
je 0x409ac3
push 0x401
push str._nnote:__didnt_find_end_of_central_dir_signature_at_end_of_central_dir._n
push 0x429b04
call fcn.00412920
add esp, 8
push eax
push 0x429b04
push 0x429240
call dword [int.00439d6c]
add esp, 0x10
mov ebp, 1
test edi, edi
jne 0x409ad1
cmp ebp, 1
jg 0x409ad1
mov ebp, 0xb
pop edi
mov eax, ebp
pop esi
pop ebp
pop ebx
add esp, 0x7c
ret
mov ecx, dword [esp + 0x20]
push 0x401
push ecx
push str.error:__expected_central_file_header_signature_not_found__file__lu_._n
push 0x429b04
call fcn.00412920
add esp, 0xc
push eax
push 0x429b04
push 0x429240
call dword [int.00439d6c]
add esp, 0x10
push 0x401
push str.___please_check_that_you_have_transferred_or_created_the_zipfile_in_the_n__appropriate_BINARY_mode_and_that_you_have_compiled_UnZip_properly__n
push 0x429b04
call fcn.00412920
add esp, 8
push eax
push 0x429b04
push 0x429240
call dword [int.00439d6c]
add esp, 0x10
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x7c
ret