Function at 0x41180b
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x26c
mov eax, dword [0x44100c]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov ebx, edx
mov edi, ecx
xor ecx, ecx
test ebx, ebx
je 0x41182e
mov dword [ebx + 4], ecx
mov eax, dword [edi]
xorps xmm0, xmm0
push ecx
push ecx
push ecx
mov ecx, edi
movlpd qword [ebp - 0x98], xmm0
call dword [eax + 0x20]
mov eax, dword [edi]
lea ecx, [ebp - 0x168]
push 0x40
push ecx
mov ecx, edi
call dword [eax + 0x18]
test eax, eax
je 0x411e90
mov eax, 0x5a4d
cmp word [ebp - 0x168], ax
jne 0x411e90
mov eax, dword [ebp - 0x12c]
test eax, eax
je 0x411e89
js 0x411e89
mov esi, dword [edi]
mov ecx, edi
cdq
mov dword [ebp - 0x260], eax
mov dword [ebp - 0x25c], edx
call dword [esi + 0x28]
mov esi, dword [ebp - 0x25c]
cmp esi, edx
jg 0x411e89
mov ecx, dword [ebp - 0x260]
jl 0x4118b3
cmp ecx, eax
ja 0x411e89
mov eax, dword [edi]
push 0
push esi
push ecx
mov ecx, edi
call dword [eax + 0x20]
mov ecx, eax
mov esi, edx
mov eax, dword [ebp - 0x12c]
cdq
cmp ecx, eax
jne 0x411e90
cmp esi, edx
jne 0x411e90
mov eax, dword [edi]
lea ecx, [ebp - 0xd0]
push 4
push ecx
mov ecx, edi
call dword [eax + 0x18]
test eax, eax
je 0x411e90
cmp dword [ebp - 0xd0], 0x4550
jne 0x411e89
mov eax, dword [edi]
lea ecx, [ebp - 0x104]
push 0x14
push ecx
mov ecx, edi
call dword [eax + 0x18]
test eax, eax
je 0x411e90
mov eax, dword [edi]
lea ecx, [ebp - 0x9c]
push 2
push ecx
mov ecx, edi
call dword [eax + 0x18]
test eax, eax
je 0x411e90
mov ax, word [ebp - 0x9c]
xor edx, edx
mov ecx, 0x10b
mov esi, edx
cmp ax, cx
jne 0x41194b
add ecx, 0xffffffd3
jmp 0x411961
mov ecx, 0x20b
cmp ax, cx
jne 0x411e90
xor esi, esi
mov ecx, 0xee
inc esi
push ecx
mov word [ebp - 0x258], ax
lea ecx, [ebp - 0x256]
mov eax, dword [edi]
push ecx
mov ecx, edi
mov dword [ebp - 0x8c], edx
mov dword [ebp - 0x25c], edx
call dword [eax + 0x18]
test eax, eax
je 0x411e90
mov eax, dword [ebp - 0x1e8]
test esi, esi
cmovne eax, dword [ebp - 0x1d8]
xor edx, edx
mov dword [ebp - 0x268], eax
mov esi, edx
xor eax, eax
cmp ax, word [ebp - 0x102]
mov eax, dword [ebp - 0x94]
mov dword [ebp - 0x260], eax
mov eax, dword [ebp - 0x98]
mov dword [ebp - 0x264], eax
jae 0x411bd1
mov eax, dword [edi]
lea ecx, [ebp - 0xcc]
push 0x28
push ecx
mov ecx, edi
call dword [eax + 0x18]
test eax, eax
je 0x411e90
mov ecx, dword [ebp - 0xbc]
test ecx, ecx
je 0x411a3d
mov eax, dword [ebp - 0xb8]
add eax, ecx
xor ecx, ecx
cmp ecx, dword [ebp - 0x260]
jl 0x411a3d
jg 0x411a09
cmp eax, dword [ebp - 0x264]
jbe 0x411a3d
push 8
lea eax, [ebp - 0xcc]
push str._winzip_
push eax
call fcn.00423a60
add esp, 0xc
test eax, eax
je 0x411a3d
mov eax, dword [ebp - 0xbc]
add eax, dword [ebp - 0xb8]
mov dword [ebp - 0x264], eax
xor eax, eax
mov dword [ebp - 0x260], eax
cmp dword [ebp - 0x8c], 0
jne 0x411a78
push 8
lea eax, [ebp - 0xcc]
push str..rsrc
push eax
call fcn.00423a60
add esp, 0xc
test eax, eax
jne 0x411a78
mov eax, dword [ebp - 0xb8]
mov dword [ebp - 0x8c], eax
mov eax, dword [ebp - 0xbc]
mov dword [ebp - 0x25c], eax
test ebx, ebx
je 0x411bbf
push 8
lea eax, [ebp - 0xcc]
push str..text
push eax
call fcn.00423a60
add esp, 0xc
test eax, eax
je 0x411bbf
push 8
lea eax, [ebp - 0xcc]
push 0x43bb84
push eax
call fcn.00423a60
add esp, 0xc
test eax, eax
je 0x411bbf
push 8
lea eax, [ebp - 0xcc]
push str..edata
push eax
call fcn.00423a60
add esp, 0xc
test eax, eax
je 0x411bbf
push 8
lea eax, [ebp - 0xcc]
push str..reloc
push eax
call fcn.00423a60
add esp, 0xc
test eax, eax
je 0x411bbf
push 8
lea eax, [ebp - 0xcc]
push 0x43bb9c
push eax
call fcn.00423a60
add esp, 0xc
test eax, eax
je 0x411bbf
push 8
lea eax, [ebp - 0xcc]
push str..idata
push eax
call fcn.00423a60
add esp, 0xc
test eax, eax
je 0x411bbf
push 8
lea eax, [ebp - 0xcc]
push str..rsrc
push eax
call fcn.00423a60
add esp, 0xc
test eax, eax
je 0x411bbf
push 8
lea eax, [ebp - 0xcc]
push str.UPX0
push eax
call fcn.00423a60
add esp, 0xc
test eax, eax
je 0x411bbf
push 8
lea eax, [ebp - 0xcc]
push str.UPX1
push eax
call fcn.00423a60
add esp, 0xc
test eax, eax
je 0x411bbf
push 8
lea eax, [ebp - 0xcc]
push str..CRT
push eax
call fcn.00423a60
add esp, 0xc
test eax, eax
je 0x411bbf
push 8
lea eax, [ebp - 0xcc]
push 0x43bbc4
push eax
call fcn.00423a60
add esp, 0xc
test eax, eax
je 0x411bbf
mov eax, dword [ebp - 0xb8]
mov dword [ebx + 8], eax
movzx eax, word [ebp - 0x102]
inc esi
cmp esi, eax
jl 0x4119cb
xor edx, edx
test ebx, ebx
je 0x411e7b
mov ecx, dword [ebp - 0x8c]
test ecx, ecx
je 0x411e7b
mov eax, dword [edi]
push edx
push edx
push ecx
mov ecx, edi
call dword [eax + 0x20]
mov eax, dword [edi]
lea ecx, [ebp - 0xe0]
push 0x10
push ecx
mov ecx, edi
call dword [eax + 0x18]
test eax, eax
je 0x411e7b
mov esi, dword [ebp - 0x25c]
add esi, 0xfffffff0
js 0x411e7b
xor eax, eax
mov dword [ebp - 0x25c], eax
cmp ax, word [ebp - 0xd4]
jae 0x411c62
mov eax, dword [edi]
lea ecx, [ebp - 0xa4]
push 8
push ecx
mov ecx, edi
call dword [eax + 0x18]
test eax, eax
je 0x411e7b
sub esi, 8
js 0x411e7b
mov ecx, dword [ebp - 0x25c]
movzx eax, word [ebp - 0xd4]
inc ecx
mov dword [ebp - 0x25c], ecx
cmp ecx, eax
jl 0x411c29
xor eax, eax
mov dword [ebp - 0x25c], eax
cmp ax, word [ebp - 0xd2]
jae 0x411e7b
mov eax, dword [edi]
lea ecx, [ebp - 0xa4]
push 8
push ecx
mov ecx, edi
call dword [eax + 0x18]
test eax, eax
je 0x411e7b
sub esi, 8
js 0x411e7b
cmp word [ebp - 0xa4], 0xa
je 0x411cbf
mov ecx, dword [ebp - 0x25c]
movzx eax, word [ebp - 0xd2]
inc ecx
mov dword [ebp - 0x25c], ecx
cmp ecx, eax
jl 0x411c77
jmp 0x411e7b
mov eax, dword [ebp - 0xa0]
and eax, 0x7fffffff
je 0x411e7b
mov edx, dword [edi]
xor ecx, ecx
mov esi, dword [ebp - 0x8c]
add eax, esi
push ecx
push ecx
push eax
mov ecx, edi
call dword [edx + 0x20]
mov eax, dword [edi]
lea ecx, [ebp - 0xf0]
push 0x10
push ecx
mov ecx, edi
call dword [eax + 0x18]
test eax, eax
je 0x411e7b
movzx ecx, word [ebp - 0xe4]
movzx eax, word [ebp - 0xe2]
add eax, ecx
xor ecx, ecx
mov dword [ebp - 0x94], eax
mov dword [ebp - 0x25c], ecx
test eax, eax
je 0x411e7b
mov eax, dword [edi]
lea ecx, [ebp - 0xa4]
push 8
push ecx
mov ecx, edi
call dword [eax + 0x18]
test eax, eax
je 0x411e7b
mov ecx, dword [ebp - 0xa0]
mov eax, 0x80000000
test eax, ecx
je 0x411e7b
mov edx, dword [ebp - 0xa4]
test eax, edx
je 0x411de1
mov eax, dword [edi]
xor ecx, ecx
push ecx
and edx, 0x7fffffff
push ecx
add edx, esi
mov ecx, edi
push edx
call dword [eax + 0x20]
mov eax, dword [edi]
lea ecx, [ebp - 0x8c]
push 2
push ecx
mov ecx, edi
call dword [eax + 0x18]
test eax, eax
je 0x411e7b
mov eax, dword [ebp - 0x8c]
push 0x3f
pop edx
cmp dx, ax
movzx ecx, ax
cmovb ecx, edx
mov edx, dword [edi]
movzx ecx, cx
mov eax, ecx
mov ecx, edi
mov dword [ebp - 0x8c], eax
add eax, eax
push eax
lea eax, [ebp - 0x88]
push eax
call dword [edx + 0x18]
test eax, eax
je 0x411e7b
movzx eax, word [ebp - 0x8c]
add eax, eax
cmp eax, 0x80
jae 0x411ea4
xor ecx, ecx
mov word [ebp + eax - 0x88], cx
mov ecx, dword [ebp - 0xa0]
mov eax, dword [edi]
xor edx, edx
push edx
and ecx, 0x7fffffff
add ecx, esi
push edx
push ecx
mov ecx, edi
call dword [eax + 0x20]
mov eax, dword [edi]
lea ecx, [ebp - 0x114]
push 0x10
push ecx
mov ecx, edi
call dword [eax + 0x18]
test eax, eax
je 0x411e7b
cmp word [ebp - 0x106], 0
jne 0x411e2e
mov eax, dword [ebp - 0x25c]
inc eax
mov dword [ebp - 0x25c], eax
cmp eax, dword [ebp - 0x94]
jl 0x411d22
jmp 0x411e7b
mov eax, dword [edi]
lea ecx, [ebp - 0x98]
push 8
push ecx
mov ecx, edi
call dword [eax + 0x18]
test eax, eax
je 0x411e7b
mov eax, dword [ebp - 0x94]
xor ecx, ecx
mov edx, dword [edi]
add eax, esi
push ecx
push ecx
push eax
mov ecx, edi
call dword [edx + 0x20]
mov eax, dword [edi]
lea ecx, [ebp - 0x124]
push 0x10
push ecx
mov ecx, edi
call dword [eax + 0x18]
test eax, eax
je 0x411e7b
mov ecx, dword [ebp - 0x124]
sub ecx, dword [ebp - 0x268]
add ecx, esi
mov dword [ebx + 4], ecx
mov eax, dword [ebp - 0x264]
mov edx, dword [ebp - 0x260]
jmp 0x411e95
test ebx, ebx
je 0x411e90
mov byte [ebx], 1
or edx, 0xffffffff
mov eax, edx
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0041bb79
leave
ret
call fcn.0041c159
int3