Function at 0x4a3700
Capabilities:
Parse pe header

Disassembly:
mov ecx, dword [esp + 4]
mov eax, dword [ecx + 0x3c]
sub esp, 0x18
push ebx
mov ebx, dword [esp + 0x24]
push esi
push edi
cmp eax, dword [ebx]
jae 0x4a37e7
mov dl, byte [eax + ecx]
cmp dl, 0x61
jb 0x4a372e
cmp dl, 0x7a
ja 0x4a372e
movzx edx, dl
sub edx, 0x20
jmp 0x4a3731
movzx edx, dl
cmp edx, 0x50
jne 0x4a37e7
mov dl, byte [eax + ecx + 1]
cmp dl, 0x61
jb 0x4a3750
cmp dl, 0x7a
ja 0x4a3750
movzx edx, dl
sub edx, 0x20
jmp 0x4a3753
movzx edx, dl
cmp edx, 0x45
jne 0x4a37e7
mov edx, dword [eax + ecx + 4]
lea eax, [eax + ecx + 4]
mov dword [esp + 0xc], edx
mov edx, dword [eax + 4]
mov dword [esp + 0x10], edx
mov edx, dword [eax + 8]
mov dword [esp + 0x14], edx
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 0x10]
mov dword [esp + 0x1c], eax
shr eax, 0x10
mov dword [esp + 0x18], edx
test al, 2
je 0x4a37e7
mov edi, dword [esp + 0x40]
test edi, edi
je 0x4a3799
mov dword [edi], 1
mov eax, dword [esp + 0x48]
test eax, eax
je 0x4a37a7
mov dword [eax], 1
mov esi, dword [esp + 0x3c]
mov dword [ebx], 0
test esi, esi
je 0x4a37bb
mov dword [esi], 1
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x34]
push eax
push edx
call fcn.004a12b0
add esp, 8
test dword [esp + 0x1e], 0x2000
je 0x4a37ef
mov eax, dword [esp + 0x44]
test eax, eax
je 0x4a37ef
mov dword [eax], 1
jmp 0x4a37ef
mov esi, dword [esp + 0x3c]
mov edi, dword [esp + 0x40]
cmp dword [ebx], 0x40
mov dl, 0x5a
jbe 0x4a3851
cmp byte [ecx], 0x4d
jne 0x4a3851
cmp byte [ecx + 1], dl
jne 0x4a3851
mov al, byte [ecx + 2]
cmp al, 0x90
je 0x4a381f
cmp al, 0xa
je 0x4a381f
cmp al, 0x50
je 0x4a381f
cmp al, 0x40
je 0x4a381f
test al, al
je 0x4a381f
cmp al, 0x80
je 0x4a381f
cmp al, 0xf
jne 0x4a3851
cmp byte [ecx + 3], 0
jne 0x4a3851
test edi, edi
je 0x4a382f
mov dword [edi], 1
mov dword [ebx], 0
test esi, esi
je 0x4a383f
mov dword [esi], 1
mov eax, dword [esp + 0x38]
push eax
mov eax, dword [esp + 0x38]
push eax
call fcn.004a12b0
add esp, 8
mov eax, dword [ebx]
test eax, eax
jbe 0x4a3a14
cmp byte [ecx + 4], 0
jne 0x4a386b
cmp byte [ecx + 5], 0
je 0x4a3a14
push ebp
mov dword [esp + 0x2c], 0
cmp eax, 0x100
jbe 0x4a39c3
cmp byte [ecx], 0x4d
jne 0x4a39c3
cmp byte [ecx + 1], dl
jne 0x4a39c3
cmp byte [ecx + 5], 0
jne 0x4a39c3
cmp byte [ecx + 6], 0
jne 0x4a39c3
cmp byte [ecx + 7], 0
jne 0x4a39c3
cmp byte [ecx + 9], 0
jne 0x4a39c3
cmp byte [ecx + 0xa], 0
jne 0x4a39c3
cmp byte [ecx + 0xb], 0
jne 0x4a39c3
mov al, 0xff
cmp byte [ecx + 0xc], al
jne 0x4a39c3
cmp byte [ecx + 0xd], al
jne 0x4a39c3
cmp byte [ecx + 0xf], 0
jne 0x4a39c3
cmp byte [ecx + 0x14], 0
jne 0x4a39c3
cmp byte [ecx + 0x15], 0
jne 0x4a39c3
cmp byte [ecx + 0x16], 0
jne 0x4a39c3
cmp byte [ecx + 0x17], 0
jne 0x4a39c3
cmp byte [ecx + 0x18], 0x40
jne 0x4a39c3
cmp byte [ecx + 0x19], 0
jne 0x4a39c3
cmp byte [ecx + 0x1a], 0
jne 0x4a39c3
cmp byte [ecx + 0x1b], 0
jne 0x4a39c3
xor ebx, ebx
lea esi, [ecx + 0x100]
xor ebp, ebp
mov edi, 0x100
lea ebx, [ebx]
cmp byte [esi], 0x46
jne 0x4a3985
push 7
push str.FONTDIR
push esi
call fcn.004dd670
add esp, 0xc
test eax, eax
jne 0x4a396e
lea ebx, [eax + 1]
jmp 0x4a3985
push 7
push str.FONTRES
push esi
call fcn.004dd670
add esp, 0xc
test eax, eax
jne 0x4a3985
lea ebp, [eax + 1]
inc esi
sub edi, 1
jne 0x4a3950
test ebx, ebx
je 0x4a39b7
test ebp, ebp
je 0x4a39b7
mov eax, dword [esp + 0x50]
mov dword [esp + 0x2c], 1
test eax, eax
je 0x4a3a13
mov ebx, dword [esp + 0x30]
mov esi, dword [esp + 0x40]
mov edi, dword [esp + 0x44]
mov dword [eax], 1
jmp 0x4a39c7
mov ebx, dword [esp + 0x30]
mov esi, dword [esp + 0x40]
mov edi, dword [esp + 0x44]
mov eax, dword [esp + 0x50]
test eax, eax
je 0x4a39d6
cmp dword [eax], 1
je 0x4a39d6
mov dword [eax], 0
cmp dword [esp + 0x2c], 0
jne 0x4a3a13
test edi, edi
je 0x4a39e7
mov dword [edi], 1
mov dword [ebx], 0
test esi, esi
je 0x4a39f7
mov dword [esi], 1
mov eax, dword [esp + 0x38]
test eax, eax
je 0x4a3a05
mov dword [eax], 1
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x4a3a13
mov dword [eax], 1
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x18
ret