Function at 0x4150c3
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x268
mov eax, dword [0x43f050]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push edi
mov edi, ecx
xor ebx, ebx
mov dword [ebp - 0x104], edi
cmp edi, ebx
je 0x4150e9
mov dword [edi + 4], ebx
mov eax, dword [esi]
push ebx
push ebx
push ebx
mov ecx, esi
mov dword [ebp - 0x120], ebx
call dword [eax + 0x1c]
mov eax, dword [esi]
push 0x40
lea ecx, [ebp - 0xf0]
push ecx
mov ecx, esi
call dword [eax + 0x14]
test eax, eax
je 0x41558d
mov eax, 0x5a4d
cmp word [ebp - 0xf0], ax
jne 0x41558d
mov eax, dword [ebp - 0xb4]
cmp eax, ebx
je 0x415586
jl 0x415586
cdq
mov dword [ebp - 0x100], eax
mov eax, dword [esi]
mov ecx, esi
mov edi, edx
call dword [eax + 0x24]
cmp edi, edx
jg 0x415580
jl 0x41515d
cmp dword [ebp - 0x100], eax
ja 0x415580
mov eax, dword [esi]
push ebx
push edi
push dword [ebp - 0x100]
mov ecx, esi
call dword [eax + 0x1c]
mov ecx, eax
mov eax, dword [ebp - 0xb4]
mov edi, edx
cdq
cmp ecx, eax
jne 0x41558d
cmp edi, edx
jne 0x41558d
mov eax, dword [esi]
push 4
lea ecx, [ebp - 0x124]
push ecx
mov ecx, esi
call dword [eax + 0x14]
test eax, eax
je 0x41558d
cmp dword [ebp - 0x124], 0x4550
je 0x4151c1
mov eax, dword [ebp - 0x104]
cmp eax, ebx
je 0x41558d
mov byte [eax], 1
jmp 0x41558d
mov eax, dword [esi]
push 0x14
lea ecx, [ebp - 0x158]
push ecx
mov ecx, esi
call dword [eax + 0x14]
test eax, eax
je 0x41558d
mov eax, dword [esi]
push 2
lea ecx, [ebp - 0x10c]
push ecx
mov ecx, esi
call dword [eax + 0x14]
test eax, eax
je 0x41558d
mov cx, word [ebp - 0x10c]
mov eax, 0x10b
xor edi, edi
cmp cx, ax
jne 0x415209
add eax, 0xffffffd3
jmp 0x41521f
mov eax, 0x20b
cmp cx, ax
jne 0x41558d
xor edi, edi
mov eax, 0xee
inc edi
mov dword [ebp - 0xf4], ebx
mov dword [ebp - 0x108], ebx
cmp eax, ebx
je 0x41531e
mov edx, dword [esi]
push eax
lea eax, [ebp - 0x266]
mov word [ebp - 0x268], cx
push eax
mov ecx, esi
call dword [edx + 0x14]
test eax, eax
je 0x41558d
mov eax, dword [ebp - 0x1e8]
cmp edi, ebx
jne 0x415261
mov eax, dword [ebp - 0x1f8]
mov dword [ebp - 0x108], eax
xor eax, eax
xor edi, edi
cmp ax, word [ebp - 0x156]
jae 0x41531e
mov eax, dword [esi]
push 0x28
lea ecx, [ebp - 0xb0]
push ecx
mov ecx, esi
call dword [eax + 0x14]
test eax, eax
je 0x41558d
mov eax, dword [ebp - 0xa0]
cmp eax, ebx
je 0x41530e
mov ecx, dword [ebp - 0x9c]
add eax, ecx
xor ecx, ecx
cmp ebx, ecx
jl 0x41530e
jg 0x4152b2
cmp eax, dword [ebp - 0x120]
jbe 0x41530e
push 8
lea eax, [ebp - 0xb0]
push str._winzip_
push eax
call fcn.0042104f
add esp, 0xc
test eax, eax
je 0x4152e0
mov eax, dword [ebp - 0x9c]
mov ecx, dword [ebp - 0xa0]
add eax, ecx
mov dword [ebp - 0x120], eax
cmp dword [ebp - 0xf4], ebx
jne 0x41530e
push 8
lea eax, [ebp - 0xb0]
push str..rsrc
push eax
call fcn.0042104f
add esp, 0xc
test eax, eax
jne 0x41530e
mov eax, dword [ebp - 0x9c]
mov dword [ebp - 0xf4], eax
movzx eax, word [ebp - 0x156]
inc edi
cmp edi, eax
jl 0x415278
cmp dword [ebp - 0x104], ebx
je 0x415576
cmp dword [ebp - 0xf4], ebx
je 0x415576
mov eax, dword [esi]
push ebx
push ebx
push dword [ebp - 0xf4]
mov ecx, esi
call dword [eax + 0x1c]
mov eax, dword [esi]
push 0x10
lea ecx, [ebp - 0x134]
push ecx
mov ecx, esi
call dword [eax + 0x14]
test eax, eax
je 0x415576
xor eax, eax
xor edi, edi
cmp ax, word [ebp - 0x128]
jae 0x41538e
mov eax, dword [esi]
push 8
lea ecx, [ebp - 0x100]
push ecx
mov ecx, esi
call dword [eax + 0x14]
test eax, eax
je 0x415576
movzx eax, word [ebp - 0x128]
inc edi
cmp edi, eax
jl 0x41536a
xor eax, eax
xor edi, edi
cmp ax, word [ebp - 0x126]
jae 0x415576
mov eax, dword [esi]
push 8
lea ecx, [ebp - 0x100]
push ecx
mov ecx, esi
call dword [eax + 0x14]
test eax, eax
je 0x415576
cmp word [ebp - 0x100], 0xa
je 0x4153d2
movzx eax, word [ebp - 0x126]
inc edi
cmp edi, eax
jl 0x41539f
jmp 0x415576
mov eax, dword [ebp - 0xfc]
mov edi, 0x7fffffff
and eax, edi
je 0x415576
mov ecx, dword [ebp - 0xf4]
mov edx, dword [esi]
push ebx
add eax, ecx
push ebx
push eax
mov ecx, esi
call dword [edx + 0x1c]
mov eax, dword [esi]
push 0x10
lea ecx, [ebp - 0x144]
push ecx
mov ecx, esi
call dword [eax + 0x14]
test eax, eax
je 0x415576
xor eax, eax
mov dword [ebp - 0x110], ebx
cmp ax, word [ebp - 0x138]
jae 0x415576
mov eax, dword [esi]
push 8
lea ecx, [ebp - 0x100]
push ecx
mov ecx, esi
call dword [eax + 0x14]
test eax, eax
je 0x415576
mov ecx, dword [ebp - 0xfc]
mov edx, 0x80000000
test edx, ecx
je 0x415576
mov eax, dword [ebp - 0x100]
test edx, eax
je 0x4154d5
mov edx, dword [esi]
push ebx
and eax, edi
add eax, dword [ebp - 0xf4]
push ebx
push eax
mov ecx, esi
call dword [edx + 0x1c]
mov eax, dword [esi]
push 2
lea ecx, [ebp - 0xf8]
push ecx
mov ecx, esi
call dword [eax + 0x14]
test eax, eax
je 0x415576
push 0x3f
pop eax
mov ecx, eax
cmp cx, word [ebp - 0xf8]
jb 0x415498
movzx eax, word [ebp - 0xf8]
mov dword [ebp - 0xf8], eax
movzx ecx, word [ebp - 0xf8]
mov eax, dword [esi]
add ecx, ecx
push ecx
lea ecx, [ebp - 0x88]
push ecx
mov ecx, esi
call dword [eax + 0x14]
test eax, eax
je 0x415576
movzx eax, word [ebp - 0xf8]
xor ecx, ecx
mov word [ebp + eax*2 - 0x88], cx
mov ecx, dword [ebp - 0xfc]
mov eax, dword [esi]
and ecx, edi
add ecx, dword [ebp - 0xf4]
push ebx
push ebx
push ecx
mov ecx, esi
call dword [eax + 0x1c]
mov eax, dword [esi]
push 0x10
lea ecx, [ebp - 0x168]
push ecx
mov ecx, esi
call dword [eax + 0x14]
test eax, eax
je 0x415576
cmp word [ebp - 0x15a], bx
jne 0x41551f
movzx eax, word [ebp - 0x138]
inc dword [ebp - 0x110]
cmp dword [ebp - 0x110], eax
jl 0x415424
jmp 0x415576
mov eax, dword [esi]
push 8
lea ecx, [ebp - 0x114]
push ecx
mov ecx, esi
call dword [eax + 0x14]
test eax, eax
je 0x415576
mov ecx, dword [ebp - 0x110]
mov edi, dword [ebp - 0xf4]
mov eax, dword [esi]
push ebx
add ecx, edi
push ebx
push ecx
mov ecx, esi
call dword [eax + 0x1c]
mov eax, dword [esi]
push 0x10
lea ecx, [ebp - 0x178]
push ecx
mov ecx, esi
call dword [eax + 0x14]
test eax, eax
je 0x415576
mov eax, dword [ebp - 0x178]
sub eax, dword [ebp - 0x108]
mov ecx, dword [ebp - 0x104]
add eax, edi
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x120]
xor edx, edx
jmp 0x415592
mov edi, dword [ebp - 0x104]
cmp edi, ebx
je 0x41558d
mov byte [edi], 1
or eax, 0xffffffff
or edx, eax
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
pop ebx
call fcn.0041f998
leave
ret