Function at 0x4aabb5
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffec8
pushal
mov eax, esp
add eax, 0x1c
mov dword [ebp - 0x130], eax
push dword [ebp + 8]
call dword [ebx + 0x40247c]
cmp eax, 0xffffffff
je 0x4ab075
mov dword [ebp - 0x14], eax
push 0x80
push dword [ebp + 8]
call dword [ebx + 0x402484]
push 0
push 0x80
push 3
push 0
push 3
push 0xc0000000
push dword [ebp + 8]
call dword [ebx + 0x402478]
cmp eax, 0xffffffff
je 0x4ab05b
mov dword [ebp - 4], eax
push eax
call dword [ebx + 0x4024a0]
cmp eax, 1
jne 0x4ab050
push 0
push dword [ebp - 4]
call dword [ebx + 0x402494]
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x1c]
push eax
push dword [ebp - 4]
call dword [ebx + 0x402498]
push 0
push 0
push 0
push 4
push 0
push dword [ebp - 4]
call dword [ebx + 0x402488]
or eax, eax
je 0x4ab03b
mov dword [ebp - 8], eax
push 0
push 0
push 0
push 6
push eax
call dword [ebx + 0x40248c]
or eax, eax
je 0x4ab032
mov dword [ebp - 0xc], eax
cmp word [eax], 0x5a4d
jne 0x4ab029
add eax, dword [eax + 0x3c]
cmp byte [eax], 0x50
jne 0x4ab029
cmp byte [eax + 1], 0x45
jne 0x4ab029
mov ecx, dword [eax + 8]
add ch, cl
cmp dword [eax + 0x4c], 0
jne 0x4ab01d
cmp ch, 0xff
je 0x4ab01d
bt dword [eax + 0x16], 0xd
jb 0x4ab029
push 3
call fcn.004ab4c8
or edx, edx
jne 0x4aaccf
inc edx
mov dh, 0xff
sub dh, dl
mov dword [ebp - 0x134], edx
cmp dword [ebp + 0xc], 0
je 0x4aacfe
push dword [ebp - 4]
push dword [ebp - 0x10]
push dword [ebp - 0xc]
call fcn.004ab1b5
mov eax, dword [ebp - 0x130]
mov dword [eax], 0xffffffff
jmp 0x4ab01b
lea edi, [ebp - 0x12c]
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 0x10]
push 0x1c
pop ecx
push ecx
push 0x110
push edx
push eax
call fcn.004ab086
or eax, eax
je 0x4aad68
push eax
push 0
push eax
push dword [ebp - 0xc]
call fcn.004ab0eb
cmp eax, 0xffffffff
je 0x4aad52
mov ecx, eax
pop eax
push eax
pushal
add eax, edx
dec eax
push 0
push eax
push dword [ebp - 0xc]
call fcn.004ab0eb
sub eax, ecx
inc eax
cmp eax, edx
je 0x4aad51
popal
mov eax, 0xffffffff
jmp 0x4aad52
popal
cmp eax, 1
pop eax
jl 0x4aad5c
stosd dword es:[edi], eax
xchg edx, eax
stosd dword es:[edi], eax
xchg edx, eax
add eax, edx
mov ecx, eax
sub ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 0x10]
sub edx, ecx
or eax, eax
pop ecx
loopne 0x4aad0d
xor eax, eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
push 4
pop edx
jmp 0x4aadf1
cmp dword ss:[edx + ebp - 0x12c], 0x1dc5
jb 0x4aadb2
mov eax, dword ss:[edx + ebp - 0x130]
mov dword [ebp - 0x12c], eax
mov eax, dword ss:[edx + ebp - 0x12c]
mov dword [ebp - 0x128], eax
xor eax, eax
mov dword [ebp - 0x124], eax
mov dword [ebp - 0x120], eax
jmp 0x4aae00
cmp dword ss:[edx + ebp - 0x12c], 0x225
jb 0x4aadee
mov eax, dword ss:[edx + ebp - 0x130]
xchg dword [ebp - 0x12c], eax
mov dword ss:[edx + ebp - 0x130], eax
mov eax, dword ss:[edx + ebp - 0x12c]
xchg dword [ebp - 0x128], eax
mov dword ss:[edx + ebp - 0x12c], eax
jmp 0x4aae00
add edx, 8
cmp dword ss:[edx + ebp - 0x12c], 0
jne 0x4aad76
push 4
pop edx
xor eax, eax
jmp 0x4aae12
add eax, dword ss:[edx + ebp - 0x12c]
add edx, 8
cmp dword ss:[edx + ebp - 0x12c], 0
jne 0x4aae07
cmp dword [ebp - 0x128], 0x225
jb 0x4ab00f
cmp dword [ebp - 0x128], 0x1dc5
jae 0x4aae44
cmp eax, 0x1dc5
jb 0x4ab001
mov eax, 0x1dc5
lea edx, [ebp - 0x12c]
lea esi, [ebx + section..text]
mov edi, dword [edx]
sub edi, dword [ebp - 0xc]
mov dword [ebp - 0x138], edi
jmp 0x4aaea3
cmp dword [edx + 4], eax
jb 0x4aae6a
mov dword [edx + 4], eax
mov edi, dword [edx]
mov ecx, dword [edx + 4]
push eax
push edx
lea eax, [ebp - 0x12c]
cmp eax, edx
jne 0x4aae7f
rep movsb byte es:[edi], byte [esi]
jmp 0x4aae97
mov edx, dword [ebp - 0x134]
mov al, byte [esi]
or al, al
je 0x4aae91
cmp al, dl
je 0x4aae91
xor al, dl
mov byte [edi], al
inc edi
inc esi
loop 0x4aae85
pop edx
pop eax
sub eax, dword [edx + 4]
or eax, eax
je 0x4aaea8
add edx, 8
cmp dword [edx], 0
jne 0x4aae62
xor eax, eax
mov dword [edx + 8], eax
mov dword [edx + 0xc], eax
lea esi, [ebp - 0x12c]
mov edi, dword [esi]
add edi, 0x13d
mov edx, esi
jmp 0x4aaed3
push 2
push dword [edx]
push dword [ebp - 0xc]
call fcn.004ab0eb
mov dword [edx], eax
add edx, 8
cmp dword [edx], 0
jne 0x4aaec2
push 0x3a
pop ecx
pushal
rep movsd dword es:[edi], dword [esi]
popal
mov edx, dword [ebp - 0xc]
add edx, dword [edx + 0x3c]
push 3
push dword [edx + 0x28]
push dword [ebp - 0xc]
call fcn.004ab0eb
mov esi, eax
mov cl, byte [esi]
mov byte [edi - 5], cl
mov ecx, dword [esi + 1]
mov dword [edi - 4], ecx
sub edi, 0x13d
push 2
push edi
push dword [ebp - 0xc]
call fcn.004ab0eb
pushal
mov edx, dword [ebp - 0xc]
add edx, dword [edx + 0x3c]
movzx ecx, word [edx + 6]
add edx, 0xf8
jmp 0x4aaf75
mov edi, dword [edx + 0x14]
add edi, dword [ebp - 0xc]
cmp esi, edi
jbe 0x4aaf71
add edi, dword [edx + 0x10]
cmp esi, edi
jae 0x4aaf71
push eax
sub edi, 5
push 0
push edi
push dword [ebp - 0xc]
call fcn.004ab0eb
pushal
mov esi, eax
mov eax, dword [ebp - 0x138]
add eax, dword [ebp - 0xc]
add eax, 0x12f
mov dword [eax], esi
mov ecx, dword [edi]
mov dword [eax + 4], ecx
mov cl, byte [edi + 4]
mov byte [eax + 8], cl
popal
sub dword [esp], eax
pop eax
sub eax, 5
mov byte [edi], 0xe9
mov dword [edi + 1], eax
jmp 0x4aaf79
dec ecx
add edx, 0x28
or ecx, ecx
jne 0x4aaf23
or ecx, ecx
je 0x4aaf89
sub edi, esi
sub edi, 5
mov dword [esp + 0x1c], edi
popal
jmp 0x4aaf93
popal
sub eax, dword [edx + 0x34]
sub eax, dword [edx + 0x28]
sub eax, 5
mov byte [esi], 0xe8
mov dword [esi + 1], eax
movzx eax, word [edx + 0x14]
add eax, 0x18
movzx ecx, word [edx + 6]
add edx, eax
mov eax, dword [edx + 0x10]
cmp dword [edx + 8], eax
jae 0x4aafb1
mov dword [edx + 8], eax
mov eax, dword [edx + 0x14]
cmp dword [ebp - 0x138], eax
jbe 0x4aafce
add eax, dword [edx + 0x10]
cmp dword [ebp - 0x138], eax
jae 0x4aafce
or dword [edx + 0x24], 0x20000020
add edx, 0x28
or ecx, ecx
je 0x4aafd7
loop 0x4aafa6
mov eax, dword [ebp - 0xc]
add eax, dword [eax + 0x3c]
mov edx, dword [ebp - 0x134]
mov dword [eax + 8], edx
mov dword [eax + 0x58], 0
push eax
push dword [ebp - 0x10]
push dword [ebp - 0xc]
call fcn.004ab261
mov ecx, eax
pop eax
mov dword [eax + 0x58], ecx
jmp 0x4ab01b
mov eax, dword [ebp - 0x130]
mov dword [eax], 0xfffffffe
jmp 0x4ab01b
mov eax, dword [ebp - 0x130]
mov dword [eax], 0xfffffffe
jmp 0x4ab029
mov eax, dword [ebp - 0x130]
mov dword [eax], 0xffffffff
push dword [ebp - 0xc]
call dword [ebx + 0x402490]
push dword [ebp - 8]
call dword [ebx + fcn.004024a4]
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x1c]
push eax
push dword [ebp - 4]
call dword [ebx + 0x40249c]
push dword [ebp - 4]
call dword [ebx + fcn.004024a4]
jmp 0x4ab067
mov eax, dword [ebp - 0x130]
mov dword [eax], 0xffffffff
push dword [ebp - 0x14]
push dword [ebp + 8]
call dword [ebx + 0x402484]
jmp 0x4ab081
mov eax, dword [ebp - 0x130]
mov dword [eax], 0xffffffff
popal
leave
ret 8