Function at 0x415274
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 0x41529a
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 0x41573e
mov eax, 0x5a4d
cmp word [ebp - 0xf0], ax
jne 0x41573e
mov eax, dword [ebp - 0xb4]
cmp eax, ebx
je 0x415737
jl 0x415737
cdq
mov dword [ebp - 0x100], eax
mov eax, dword [esi]
mov ecx, esi
mov edi, edx
call dword [eax + 0x24]
cmp edi, edx
jg 0x415731
jl 0x41530e
cmp dword [ebp - 0x100], eax
ja 0x415731
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 0x41573e
cmp edi, edx
jne 0x41573e
mov eax, dword [esi]
push 4
lea ecx, [ebp - 0x124]
push ecx
mov ecx, esi
call dword [eax + 0x14]
test eax, eax
je 0x41573e
cmp dword [ebp - 0x124], 0x4550
je 0x415372
mov eax, dword [ebp - 0x104]
cmp eax, ebx
je 0x41573e
mov byte [eax], 1
jmp 0x41573e
mov eax, dword [esi]
push 0x14
lea ecx, [ebp - 0x158]
push ecx
mov ecx, esi
call dword [eax + 0x14]
test eax, eax
je 0x41573e
mov eax, dword [esi]
push 2
lea ecx, [ebp - 0x10c]
push ecx
mov ecx, esi
call dword [eax + 0x14]
test eax, eax
je 0x41573e
mov cx, word [ebp - 0x10c]
mov eax, 0x10b
xor edi, edi
cmp cx, ax
jne 0x4153ba
add eax, 0xffffffd3
jmp 0x4153d0
mov eax, 0x20b
cmp cx, ax
jne 0x41573e
xor edi, edi
mov eax, 0xee
inc edi
mov dword [ebp - 0xf4], ebx
mov dword [ebp - 0x108], ebx
cmp eax, ebx
je 0x4154cf
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 0x41573e
mov eax, dword [ebp - 0x1e8]
cmp edi, ebx
jne 0x415412
mov eax, dword [ebp - 0x1f8]
mov dword [ebp - 0x108], eax
xor eax, eax
xor edi, edi
cmp ax, word [ebp - 0x156]
jae 0x4154cf
mov eax, dword [esi]
push 0x28
lea ecx, [ebp - 0xb0]
push ecx
mov ecx, esi
call dword [eax + 0x14]
test eax, eax
je 0x41573e
mov eax, dword [ebp - 0xa0]
cmp eax, ebx
je 0x4154bf
mov ecx, dword [ebp - 0x9c]
add eax, ecx
xor ecx, ecx
cmp ebx, ecx
jl 0x4154bf
jg 0x415463
cmp eax, dword [ebp - 0x120]
jbe 0x4154bf
push 8
lea eax, [ebp - 0xb0]
push str._winzip_
push eax
call fcn.0042135f
add esp, 0xc
test eax, eax
je 0x415491
mov eax, dword [ebp - 0x9c]
mov ecx, dword [ebp - 0xa0]
add eax, ecx
mov dword [ebp - 0x120], eax
cmp dword [ebp - 0xf4], ebx
jne 0x4154bf
push 8
lea eax, [ebp - 0xb0]
push str..rsrc
push eax
call fcn.0042135f
add esp, 0xc
test eax, eax
jne 0x4154bf
mov eax, dword [ebp - 0x9c]
mov dword [ebp - 0xf4], eax
movzx eax, word [ebp - 0x156]
inc edi
cmp edi, eax
jl 0x415429
cmp dword [ebp - 0x104], ebx
je 0x415727
cmp dword [ebp - 0xf4], ebx
je 0x415727
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 0x415727
xor eax, eax
xor edi, edi
cmp ax, word [ebp - 0x128]
jae 0x41553f
mov eax, dword [esi]
push 8
lea ecx, [ebp - 0x100]
push ecx
mov ecx, esi
call dword [eax + 0x14]
test eax, eax
je 0x415727
movzx eax, word [ebp - 0x128]
inc edi
cmp edi, eax
jl 0x41551b
xor eax, eax
xor edi, edi
cmp ax, word [ebp - 0x126]
jae 0x415727
mov eax, dword [esi]
push 8
lea ecx, [ebp - 0x100]
push ecx
mov ecx, esi
call dword [eax + 0x14]
test eax, eax
je 0x415727
cmp word [ebp - 0x100], 0xa
je 0x415583
movzx eax, word [ebp - 0x126]
inc edi
cmp edi, eax
jl 0x415550
jmp 0x415727
mov eax, dword [ebp - 0xfc]
mov edi, 0x7fffffff
and eax, edi
je 0x415727
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 0x415727
xor eax, eax
mov dword [ebp - 0x110], ebx
cmp ax, word [ebp - 0x138]
jae 0x415727
mov eax, dword [esi]
push 8
lea ecx, [ebp - 0x100]
push ecx
mov ecx, esi
call dword [eax + 0x14]
test eax, eax
je 0x415727
mov ecx, dword [ebp - 0xfc]
mov edx, 0x80000000
test edx, ecx
je 0x415727
mov eax, dword [ebp - 0x100]
test edx, eax
je 0x415686
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 0x415727
push 0x3f
pop eax
mov ecx, eax
cmp cx, word [ebp - 0xf8]
jb 0x415649
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 0x415727
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 0x415727
cmp word [ebp - 0x15a], bx
jne 0x4156d0
movzx eax, word [ebp - 0x138]
inc dword [ebp - 0x110]
cmp dword [ebp - 0x110], eax
jl 0x4155d5
jmp 0x415727
mov eax, dword [esi]
push 8
lea ecx, [ebp - 0x114]
push ecx
mov ecx, esi
call dword [eax + 0x14]
test eax, eax
je 0x415727
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 0x415727
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 0x415743
mov edi, dword [ebp - 0x104]
cmp edi, ebx
je 0x41573e
mov byte [edi], 1
or eax, 0xffffffff
or edx, eax
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
pop ebx
call fcn.0041fc9d
leave
ret