Function at 0x403073
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x138
push ebx
push esi
push edi
push 0x40000
call fcn.0040c840
add esp, 4
mov dword [ebp - 0x10], eax
test eax, eax
jne 0x40309d
mov esi, 1
jmp 0x403341
push 0x8000
push dword [ebp + 8]
call fcn.0040c1d0
add esp, 8
mov dword [ebp - 4], eax
cmp eax, 0xffffffff
jne 0x4030bf
mov esi, 2
jmp 0x403336
push 0x40
lea eax, [ebp - 0x138]
push eax
push dword [ebp - 4]
call fcn.0040c8e0
add esp, 0xc
cmp eax, 0x40
je 0x4030e2
mov esi, 3
jmp 0x40332b
cmp word [ebp - 0x138], 0x5a4d
mov ebx, 0
jne 0x4030f8
mov ebx, dword [ebp - 0xfc]
push 0
mov esi, 0xf8
push ebx
push dword [ebp - 4]
call fcn.0040cb50
add esp, 0xc
lea ecx, [ebp - 0x138]
push esi
push ecx
push dword [ebp - 4]
call fcn.0040c8e0
add esp, 0xc
cmp eax, esi
je 0x40312c
mov esi, 3
jmp 0x40332b
cmp dword [ebp - 0x138], 0x4550
je 0x403142
mov esi, 5
jmp 0x40332b
movzx eax, word [ebp - 0x132]
push 2
mov dword [ebp - 0x18], eax
push 0
push dword [ebp - 4]
call fcn.0040cb50
add esp, 0xc
mov dword [ebp - 8], eax
cmp eax, 0xffffffff
jne 0x40316d
mov esi, 3
jmp 0x40332b
cmp dword [ebp - 0xa0], 0
je 0x403194
mov eax, dword [ebp - 0x9c]
add eax, dword [ebp - 0xa0]
cmp eax, dword [ebp - 8]
jne 0x403326
mov eax, dword [ebp - 0xa0]
mov dword [ebp - 8], eax
mov dword [ebp - 0xc], 0
movzx eax, word [ebp - 0x124]
push 0
add eax, ebx
add eax, 0x18
push eax
push dword [ebp - 4]
call fcn.0040cb50
add esp, 0xc
mov eax, dword [ebp - 0x18]
dec dword [ebp - 0x18]
test eax, eax
je 0x40320f
push 0x28
lea eax, [ebp - 0x138]
push eax
push dword [ebp - 4]
call fcn.0040c8e0
add esp, 0xc
cmp eax, 0x28
jne 0x40321f
push dword [ebp + 0xc]
call dword [sym.imp.KERNEL32.dll_lstrlenA]
cmp eax, 8
jae 0x4031eb
mov eax, 8
lea esi, [ebp - 0x138]
mov ecx, eax
shr ecx, 2
mov edi, dword [ebp + 0xc]
repe cmpsd dword [esi], dword es:[edi]
jne 0x4031b5
mov ecx, eax
and ecx, 3
repe cmpsb byte [esi], byte es:[edi]
jne 0x4031b5
mov eax, dword [ebp - 0x124]
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
jne 0x403229
mov esi, 6
jmp 0x40332b
mov esi, 3
jmp 0x40332b
lea eax, [ebx + 0x58]
mov ecx, 4
add ebx, 0x98
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x30], ecx
add eax, ecx
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x28], 8
xor esi, esi
lea edi, [ebp - 0x34]
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x20], ecx
mov ecx, dword [ebp - 8]
mov dword [ebp - 0x1c], ecx
push 0
push esi
push dword [ebp - 4]
call fcn.0040cb50
add esp, 0xc
mov eax, dword [edi]
sub eax, esi
mov dword [ebp - 8], eax
je 0x4032b6
cmp dword [ebp - 8], 0x40000
mov ebx, 0x40000
ja 0x40328c
mov ebx, dword [ebp - 8]
push ebx
push dword [ebp - 0x10]
push dword [ebp - 4]
call fcn.0040c8e0
add esp, 0xc
cmp eax, ebx
jne 0x4032f0
push ebx
lea ecx, [ebp - 0x14]
push dword [ebp - 0x10]
push ecx
add esi, ebx
call fcn.0040334a
add esp, 0xc
sub dword [ebp - 8], ebx
jne 0x40327b
add esi, dword [edi + 4]
add edi, 8
lea eax, [ebp - 0x14]
cmp edi, eax
jb 0x403264
push 0
push dword [ebp - 0xc]
push dword [ebp - 4]
call fcn.0040cb50
add esp, 0xc
lea ecx, [ebp - 0x40]
push 0xc
push ecx
push dword [ebp - 4]
call fcn.0040c8e0
add esp, 0xc
cmp eax, 0xc
je 0x4032f7
mov esi, 3
jmp 0x40332b
mov esi, 3
jmp 0x40332b
push dword [ebp + 0xc]
call fcn.00403393
add esp, 4
cmp eax, dword [ebp - 0x40]
jne 0x403326
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0x3c], eax
jne 0x403326
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp + 0x10]
add ecx, 0xc
mov edx, dword [ebp - 0x38]
xor esi, esi
mov dword [eax], ecx
mov ecx, dword [ebp + 0x14]
mov dword [ecx], edx
jmp 0x40332b
mov esi, 7
push dword [ebp - 4]
call fcn.0040c100
add esp, 4
push dword [ebp - 0x10]
call fcn.0040c8c0
add esp, 4
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret