Function at 0x40b064
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0xd
push 0
push 0
dec ecx
jne 0x40b06c
push ecx
push ebx
push esi
push edi
mov eax, 0x40b004
call fcn.00405900
xor eax, eax
push ebp
push 0x40bb2c
push dword fs:[eax]
mov dword fs:[eax], esp
xor edx, edx
push ebp
push 0x40bae1
push dword fs:[edx]
mov dword fs:[edx], esp
call fcn.0040a134
call fcn.0040ae40
call fcn.0040ae18
mov eax, dword [0x40c504]
mov byte [eax], 0
lea edx, [ebp - 0x14]
xor eax, eax
call fcn.00402c78
mov edx, dword [ebp - 0x14]
mov eax, 0x50d7c8
call fcn.00402f7c
xor eax, eax
push ebp
push 0x40b0f7
push dword fs:[eax]
mov dword fs:[eax], esp
mov edx, 1
mov eax, 0x50d7c8
call fcn.004033bc
call fcn.004029a8
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x40b11c
xor eax, eax
push ebp
push 0x40b954
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
push ebp
push 0x40b912
push dword fs:[eax]
mov dword fs:[eax], esp
xor esi, esi
push 0
mov edx, 0x50da60
mov ecx, 2
mov eax, 0x50d7c8
call fcn.004030d4
call fcn.004029a8
cmp word [0x50da60], 0x5a4d
jne 0x40b1a5
mov edx, 0x3c
mov eax, 0x50d7c8
call fcn.004033e4
call fcn.004029a8
push 0
mov edx, 0x50da60
mov ecx, 2
mov eax, 0x50d7c8
call fcn.004030d4
call fcn.004029a8
movzx edx, word [0x50da60]
mov eax, 0x50d7c8
call fcn.004033e4
call fcn.004029a8
push 0
mov edx, 0x50da6c
mov ecx, 4
mov eax, 0x50d7c8
call fcn.004030d4
call fcn.004029a8
cmp dword [0x50da6c], 0x4550
jne 0x40b349
mov eax, 0x50d7c8
call fcn.004031f8
call fcn.004029a8
mov edx, eax
add edx, 2
mov eax, 0x50d7c8
call fcn.004033e4
call fcn.004029a8
push 0
mov edx, 0x50da60
mov ecx, 2
mov eax, 0x50d7c8
call fcn.004030d4
call fcn.004029a8
movzx eax, word [0x50da60]
mov dword [0x50da70], eax
mov eax, 0x50d7c8
call fcn.004031f8
call fcn.004029a8
mov edx, eax
add edx, 0xc
mov eax, 0x50d7c8
call fcn.004033e4
call fcn.004029a8
push 0
mov edx, 0x50da60
mov ecx, 2
mov eax, 0x50d7c8
call fcn.004030d4
call fcn.004029a8
mov eax, 0x50d7c8
call fcn.004031f8
call fcn.004029a8
mov edx, eax
add edx, 2
movzx eax, word [0x50da60]
add edx, eax
mov eax, 0x50d7c8
call fcn.004033e4
call fcn.004029a8
mov ebx, dword [0x50da70]
test ebx, ebx
jle 0x40b349
mov dword [0x50da6c], 1
mov eax, 0x50d7c8
call fcn.004031f8
call fcn.004029a8
mov edx, eax
add edx, 0x10
mov eax, 0x50d7c8
call fcn.004033e4
call fcn.004029a8
push 0
mov edx, 0x50da64
mov ecx, 4
mov eax, 0x50d7c8
call fcn.004030d4
call fcn.004029a8
push 0
mov edx, 0x50da68
mov ecx, 4
mov eax, 0x50d7c8
call fcn.004030d4
call fcn.004029a8
cmp dword [0x50da64], 0
jle 0x40b319
mov eax, dword [0x50da64]
add eax, dword [0x50da68]
cmp esi, eax
jge 0x40b319
mov esi, dword [0x50da64]
add esi, dword [0x50da68]
mov eax, 0x50d7c8
call fcn.004031f8
call fcn.004029a8
mov edx, eax
add edx, 0x10
mov eax, 0x50d7c8
call fcn.004033e4
call fcn.004029a8
inc dword [0x50da6c]
dec ebx
jne 0x40b29c
lea eax, [esi + 0xb]
mov dword [0x50da6c], eax
test esi, esi
je 0x40b36c
mov eax, 0x50d7c8
call fcn.00403248
call fcn.004029a8
cmp eax, dword [0x50da6c]
jg 0x40b383
lea edx, [ebp - 0x1c]
xor eax, eax
call fcn.00402c78
mov eax, dword [ebp - 0x1c]
mov edx, 0xc1
call fcn.0040a6d8
mov edx, esi
mov eax, 0x50d7c8
call fcn.004033e4
call fcn.004029a8
push 0
mov edx, dword [0x40c524]
mov ecx, 0xb
mov eax, 0x50d7c8
call fcn.004030d4
call fcn.004029a8
jmp 0x40b44c
mov edx, dword [0x50da6c]
mov eax, 0x50d7c8
call fcn.004033e4
call fcn.004029a8
push 0
mov edx, dword [0x40c490]
mov ecx, 0x11
mov eax, 0x50d7c8
call fcn.004030d4
call fcn.004029a8
mov ebx, dword [0x40c490]
mov ebx, dword [ebx + 1]
test ebx, ebx
jne 0x40b414
mov eax, dword [0x40c490]
cmp dword [eax + 5], 0
jne 0x40b414
mov eax, dword [0x40c490]
cmp dword [eax + 9], 0
jne 0x40b414
mov eax, dword [0x40c490]
cmp dword [eax + 0xd], 0
je 0x40b470
add dword [0x50da6c], 0x11
mov eax, dword [0x40c490]
add dword [0x50da6c], ebx
mov edi, dword [0x40c490]
mov edi, dword [edi + 5]
add dword [0x50da6c], edi
add dword [0x50da6c], 4
mov eax, dword [0x40c490]
add dword [0x40c3c8], edi
call fcn.0040ae18
cmp dword [0x50da6c], 0
jl 0x40b470
mov eax, 0x50d7c8
call fcn.00403248
call fcn.004029a8
cmp eax, dword [0x50da6c]
jg 0x40b3b5
cmp dword [0x40c3c8], 0
je 0x40b4ae
cmp dword [0x40c3c8], 0
jle 0x40b4c5
mov eax, dword [0x40c490]
cmp dword [eax + 1], 0
jne 0x40b4ae
mov eax, dword [0x40c490]
cmp dword [eax + 5], 0
jne 0x40b4ae
mov eax, dword [0x40c490]
cmp dword [eax + 9], 0
jne 0x40b4ae
mov eax, dword [0x40c490]
cmp dword [eax + 0xd], 0
je 0x40b4c5
lea edx, [ebp - 0x20]
xor eax, eax
call fcn.00402c78
mov eax, dword [ebp - 0x20]
mov edx, 0xc1
call fcn.0040a6d8
lea eax, [ebp - 0x24]
call fcn.0040a330
mov edx, dword [ebp - 0x24]
mov eax, 0x40c3b8
call fcn.0040476c
lea edx, [ebp - 0x28]
mov eax, dword [0x40c3b8]
call fcn.00406ec8
mov eax, dword [ebp - 0x28]
mov al, byte [eax]
call fcn.00402cdc
sub al, 0x41
inc eax
call fcn.00407050
mov dword [0x50da78], eax
mov dword [0x50da7c], edx
mov eax, dword [0x40c3c8]
cdq
cmp edx, dword [0x50da7c]
jne 0x40b51d
cmp eax, dword [0x50da78]
jbe 0x40b598
jmp 0x40b51f
jle 0x40b598
lea eax, [ebp - 0x2c]
push eax
lea edx, [ebp - 0x48]
mov eax, dword [0x40c3b8]
call fcn.00406ec8
mov eax, dword [ebp - 0x48]
mov al, byte [eax]
call fcn.00402cdc
mov byte [ebp - 0x44], al
mov byte [ebp - 0x40], 2
push dword [0x50da7c]
push dword [0x50da78]
lea eax, [ebp - 0x4c]
call fcn.0040a88c
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x3c], eax
mov byte [ebp - 0x38], 0xb
mov eax, dword [0x40c3c8]
cdq
push edx
push eax
lea eax, [ebp - 0x50]
call fcn.0040a88c
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0x34], eax
mov byte [ebp - 0x30], 0xb
lea edx, [ebp - 0x44]
mov ecx, 2
mov eax, 0x40bb44
call fcn.00407600
mov eax, dword [ebp - 0x2c]
mov edx, 0x70
call fcn.0040a6d8
mov eax, dword [0x40c3b8]
call fcn.00406b8c
lea edx, [esi + 0xb]
mov eax, 0x50d7c8
call fcn.004033e4
call fcn.004029a8
jmp 0x40b8e0
push 0
mov edx, dword [0x40c490]
mov ecx, 0x11
mov eax, 0x50d7c8
call fcn.004030d4
call fcn.004029a8
mov eax, dword [0x40c490]
cmp dword [eax + 1], 0
jne 0x40b605
mov eax, dword [0x40c490]
cmp dword [eax + 5], 0
jne 0x40b605
mov eax, dword [0x40c490]
cmp dword [eax + 9], 0
jne 0x40b605
mov eax, dword [0x40c490]
cmp dword [eax + 0xd], 0
je 0x40b908
mov eax, 0x50da74
mov edx, dword [0x40c3b8]
call fcn.0040476c
mov eax, dword [0x40c3b8]
call fcn.00404998
mov edx, eax
mov eax, dword [0x40c490]
add edx, dword [eax + 1]
mov eax, 0x50da74
call fcn.00404d24
push 0
mov eax, dword [0x40c3b8]
call fcn.00404998
mov ebx, eax
mov eax, 0x50da74
call fcn.00404bf0
lea edx, [eax + ebx]
mov ecx, dword [0x40c490]
mov ecx, dword [ecx + 1]
mov eax, 0x50d7c8
call fcn.004030d4
call fcn.004029a8
mov eax, dword [0x40c3b8]
call fcn.00404998
mov ebx, eax
mov eax, 0x50da74
call fcn.00404bf0
add eax, ebx
mov edx, dword [0x40c490]
mov edx, dword [edx + 1]
call fcn.00409c74
mov dword [0x50da68], eax
mov eax, dword [0x40c490]
cmp byte [eax], 0
je 0x40b6ab
mov eax, 0x40c3bc
mov edx, dword [0x50da74]
call fcn.0040476c
mov eax, dword [0x40c3c4]
call fcn.00404998
inc eax
push eax
lea eax, [ebp - 0x58]
mov edx, 0x40bb5c
mov dl, byte [edx]
call fcn.004048e4
mov ecx, dword [ebp - 0x58]
lea eax, [ebp - 0x54]
mov edx, dword [0x50da74]
call fcn.004049e4
mov eax, dword [ebp - 0x54]
mov edx, 0x40c3c4
pop ecx
call fcn.00404c80
lea edx, [ebp - 0x5c]
mov eax, dword [0x50da74]
call fcn.00406e74
mov eax, dword [ebp - 0x5c]
call fcn.00406b8c
mov eax, dword [0x40c504]
mov byte [eax], 1
mov edx, dword [0x50da74]
mov eax, 0x50d914
call fcn.00402f7c
xor eax, eax
push ebp
push 0x40b73e
push dword fs:[eax]
mov dword fs:[eax], esp
mov edx, 1
mov eax, 0x50d914
call fcn.004033d8
call fcn.004029a8
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x40b759
xor eax, eax
push ebp
push 0x40b8c6
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
mov dword [0x50da6c], eax
jmp 0x40b842
mov eax, dword [0x40c490]
mov esi, ebx
sub esi, dword [0x50da6c]
cmp esi, 0x100000
jle 0x40b794
mov dword [0x50da70], 0x100000
jmp 0x40b79f
mov eax, dword [0x40c490]
mov dword [0x50da70], esi
push 0
mov edx, dword [0x40c4c8]
mov ecx, dword [0x50da70]
mov eax, 0x50d7c8
call fcn.004030d4
call fcn.004029a8
xor eax, eax
push ebp
push 0x40b7f1
push dword fs:[eax]
mov dword fs:[eax], esp
push 0
mov edx, dword [0x40c4c8]
mov ecx, dword [0x50da70]
mov eax, 0x50d914
call fcn.004030f4
call fcn.004029a8
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x40b80c
mov eax, dword [0x40c4c8]
mov edx, dword [0x50da70]
call fcn.00409c74
add dword [0x50da68], eax
mov eax, dword [0x50da70]
add dword [0x50da6c], eax
mov eax, dword [0x50da70]
add dword [0x40c3cc], eax
call fcn.0040af68
call fcn.0040ae18
mov ebx, dword [0x40c490]
mov ebx, dword [ebx + 5]
cmp ebx, dword [0x50da6c]
jg 0x40b773
push 0
mov edx, 0x50da64
mov ecx, 4
mov eax, 0x50d7c8
call fcn.004030d4
call fcn.004029a8
mov eax, dword [0x50da64]
cmp eax, dword [0x50da68]
je 0x40b896
lea edx, [ebp - 0x60]
xor eax, eax
call fcn.00402c78
mov eax, dword [ebp - 0x60]
mov edx, 0xc1
call fcn.0040a6d8
mov edx, dword [0x40c490]
mov edx, dword [edx + 9]
mov eax, dword [0x50d914]
call fcn.00406c74
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x40b8cd
mov eax, 0x50d914
call fcn.00403114
call fcn.004029a8
ret
mov eax, 0x50d7c8
call fcn.004031f8
call fcn.004029a8
mov ebx, eax
mov eax, 0x50d7c8
call fcn.00403248
call fcn.004029a8
cmp ebx, eax
jl 0x40b5b9
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x40b937
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x40b95b
mov eax, 0x50d7c8
call fcn.00403114
call fcn.004029a8
ret