Function at 0x406e40
Capabilities:
Parse pe header

Disassembly:
push ebx
push ecx
push edx
push esi
push edi
push ebp
sub esp, 0x3c
mov ebp, eax
xor ebx, ebx
xor edx, edx
and byte [0x43b459], 0xf3
call fcn.00430f90
test eax, eax
je 0x406e6b
xor eax, eax
add esp, 0x3c
pop ebp
pop edi
pop esi
pop edx
pop ecx
pop ebx
ret
mov ebx, 0x1c
mov edx, 1
mov eax, esp
mov ecx, ebp
call fcn.004315a0
cmp eax, 0x1c
jne 0x406e5f
mov ah, byte [esp]
cmp ah, 0x4e
jae 0x406ec2
cmp ah, 0x4d
jne 0x406f10
mov dl, byte [esp + 1]
cmp dl, 0x50
je 0x406fa8
cmp dl, 0x51
je 0x406fa8
cmp dl, 0x5a
je 0x406fbe
mov eax, 0x12
add esp, 0x3c
pop ebp
pop edi
pop esi
pop edx
pop ecx
pop ebx
ret
ja 0x406ee1
cmp byte [esp + 1], 0x65
jne 0x406eb3
mov eax, 5
or byte [0x43b459], 4
add esp, 0x3c
pop ebp
pop edi
pop esi
pop edx
pop ecx
pop ebx
ret
cmp ah, 0x7f
je 0x407389
cmp ah, 0x50
jne 0x406eb3
mov bh, byte [esp + 1]
cmp bh, 0x33
je 0x40731b
cmp bh, 0x32
jne 0x406eb3
mov eax, 0x12
add esp, 0x3c
pop ebp
pop edi
pop esi
pop edx
pop ecx
pop ebx
ret
test ah, ah
jne 0x406eb3
cmp byte [esp + 1], 0
jne 0x406eb3
mov edx, 6
mov eax, ebp
xor ebx, ebx
call fcn.00430f90
mov ecx, ebp
mov ebx, 2
xor edx, edx
lea eax, [esp + 0x34]
mov word [esp + 0x34], dx
mov edx, 1
call fcn.004315a0
cmp word [esp + 0x34], 0x190
jb 0x406eb3
mov edx, 8
mov eax, ebp
xor ebx, ebx
or byte [0x43b459], 8
call fcn.00430f90
mov ecx, ebp
mov ebx, 2
mov edx, 1
lea eax, [esp + 0x34]
call fcn.004315a0
mov ch, byte [esp + 0x34]
test ch, 2
je 0x40737a
or byte [0x43b459], 4
test ch, 0x10
je 0x40736b
mov eax, 0x10
add esp, 0x3c
pop ebp
pop edi
pop esi
pop edx
pop ecx
pop ebx
ret
mov eax, 2
or byte [0x43b459], 4
add esp, 0x3c
pop ebp
pop edi
pop esi
pop edx
pop ecx
pop ebx
ret
mov eax, ebp
call fcn.00406dc0
test al, al
jne 0x406ff6
cmp word [esp + 0x18], 0x40
jb 0x407118
mov edx, 0x3c
mov eax, ebp
xor ebx, ebx
call fcn.00430f90
test eax, eax
je 0x40700c
mov eax, 1
add esp, 0x3c
pop ebp
pop edi
pop esi
pop edx
pop ecx
pop ebx
ret
mov eax, 9
or byte [0x43b459], 4
add esp, 0x3c
pop ebp
pop edi
pop esi
pop edx
pop ecx
pop ebx
ret
mov ebx, 4
mov edx, 1
lea eax, [esp + 0x28]
mov ecx, ebp
call fcn.004315a0
cmp eax, 4
je 0x407035
mov eax, 1
add esp, 0x3c
pop ebp
pop edi
pop esi
pop edx
pop ecx
pop ebx
ret
mov edx, dword [esp + 0x28]
mov eax, ebp
xor ebx, ebx
call fcn.00430f90
test eax, eax
je 0x407055
mov eax, 1
add esp, 0x3c
pop ebp
pop edi
pop esi
pop edx
pop ecx
pop ebx
ret
mov ebx, 2
mov edx, 1
lea eax, [esp + 0x30]
mov ecx, ebp
call fcn.004315a0
cmp eax, 2
jne 0x407046
cmp byte [esp + 0x30], 0x4e
jne 0x40707d
cmp byte [esp + 0x31], 0x45
je 0x4070c9
cmp byte [esp + 0x30], 0x50
jne 0x40708b
cmp byte [esp + 0x31], 0x45
je 0x4070d8
cmp byte [esp + 0x30], 0x50
jne 0x407099
cmp byte [esp + 0x31], 0x4c
je 0x4070ee
cmp byte [esp + 0x30], 0x4c
jne 0x407046
mov al, byte [0x43b459]
mov dh, byte [esp + 0x31]
or al, 4
cmp dh, 0x45
je 0x407104
cmp dh, 0x58
jne 0x407046
mov byte [0x43b459], al
mov eax, 0xd
add esp, 0x3c
pop ebp
pop edi
pop esi
pop edx
pop ecx
pop ebx
ret
mov eax, 6
add esp, 0x3c
pop ebp
pop edi
pop esi
pop edx
pop ecx
pop ebx
ret
mov eax, 0xe
or byte [0x43b459], 4
add esp, 0x3c
pop ebp
pop edi
pop esi
pop edx
pop ecx
pop ebx
ret
mov eax, 0xf
or byte [0x43b459], 4
add esp, 0x3c
pop ebp
pop edi
pop esi
pop edx
pop ecx
pop ebx
ret
mov byte [0x43b459], al
mov eax, 0xa
add esp, 0x3c
pop ebp
pop edi
pop esi
pop edx
pop ecx
pop ebx
ret
movzx eax, word [esp + 8]
shl eax, 4
xor ebx, ebx
mov dword [esp + 0x2c], eax
mov edx, eax
mov eax, ebp
call fcn.00430f90
test eax, eax
je 0x407142
mov eax, 1
add esp, 0x3c
pop ebp
pop edi
pop esi
pop edx
pop ecx
pop ebx
ret
mov ebx, 0xa
mov edx, 1
lea eax, [esp + 0x1c]
mov ecx, ebp
call fcn.004315a0
cmp eax, 0xa
je 0x40716b
mov eax, 1
add esp, 0x3c
pop ebp
pop edi
pop esi
pop edx
pop ecx
pop ebx
ret
mov ecx, 9
mov edi, 0x406c50
lea esi, [esp + 0x1c]
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x407184
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x407197
mov eax, 1
add esp, 0x3c
pop ebp
pop edi
pop esi
pop edx
pop ecx
pop ebx
ret
mov edx, dword [esp + 0x2c]
mov eax, ebp
xor ebx, ebx
add edx, 0x32
call fcn.00430f90
test eax, eax
je 0x4071ba
mov eax, 1
add esp, 0x3c
pop ebp
pop edi
pop esi
pop edx
pop ecx
pop ebx
ret
mov ebx, 2
mov edx, 1
lea eax, [esp + 0x30]
mov ecx, ebp
call fcn.004315a0
cmp eax, 2
jne 0x4071e2
cmp byte [esp + 0x30], 0x43
jne 0x4071e2
cmp byte [esp + 0x31], 0x35
je 0x4071f1
mov eax, 1
add esp, 0x3c
pop ebp
pop edi
pop esi
pop edx
pop ecx
pop ebx
ret
mov edx, dword [esp + 0x2c]
mov eax, ebp
xor ebx, ebx
add edx, 0x38
call fcn.00430f90
test eax, eax
je 0x407214
mov eax, 1
add esp, 0x3c
pop ebp
pop edi
pop esi
pop edx
pop ecx
pop ebx
ret
mov ebx, 2
mov edx, 1
lea eax, [esp + 0x30]
mov ecx, ebp
call fcn.004315a0
cmp eax, 2
jne 0x40723c
cmp byte [esp + 0x30], 0x50
jne 0x40723c
cmp byte [esp + 0x31], 0x36
je 0x40724b
mov eax, 1
add esp, 0x3c
pop ebp
pop edi
pop esi
pop edx
pop ecx
pop ebx
ret
movzx esi, word [esp + 2]
movzx eax, word [esp + 4]
neg esi
shl eax, 9
and esi, 0x1ff
sub eax, esi
xor ebx, ebx
mov esi, eax
mov edx, eax
mov eax, ebp
call fcn.00430f90
test eax, eax
je 0x407282
mov eax, 1
add esp, 0x3c
pop ebp
pop edi
pop esi
pop edx
pop ecx
pop ebx
ret
mov ebx, 2
mov edx, 1
lea eax, [esp + 0x30]
mov ecx, ebp
call fcn.004315a0
cmp eax, 2
jne 0x4072aa
cmp byte [esp + 0x30], 0x50
jne 0x4072aa
cmp byte [esp + 0x31], 0x33
je 0x4072b9
mov eax, 1
add esp, 0x3c
pop ebp
pop edi
pop esi
pop edx
pop ecx
pop ebx
ret
mov edx, esi
xor ebx, ebx
add edx, eax
mov eax, ebp
call fcn.00430f90
test eax, eax
je 0x4072d9
mov eax, 1
add esp, 0x3c
pop ebp
pop edi
pop esi
pop edx
pop ecx
pop ebx
ret
mov ebx, 2
mov edx, 1
lea eax, [esp + 0x38]
mov ecx, ebp
call fcn.004315a0
cmp word [esp + 0x38], 1
je 0x407305
mov eax, 1
add esp, 0x3c
pop ebp
pop edi
pop esi
pop edx
pop ecx
pop ebx
ret
mov eax, 8
or byte [0x43b459], 4
add esp, 0x3c
pop ebp
pop edi
pop esi
pop edx
pop ecx
pop ebx
ret
mov edx, 2
mov eax, ebp
xor ebx, ebx
call fcn.00430f90
mov ecx, ebp
mov ebx, 2
mov edx, 1
lea eax, [esp + 0x38]
call fcn.004315a0
cmp word [esp + 0x38], 1
je 0x407355
mov eax, 0x12
add esp, 0x3c
pop ebp
pop edi
pop esi
pop edx
pop ecx
pop ebx
ret
mov eax, 4
or byte [0x43b459], 4
add esp, 0x3c
pop ebp
pop edi
pop esi
pop edx
pop ecx
pop ebx
ret
mov eax, 0xc
add esp, 0x3c
pop ebp
pop edi
pop esi
pop edx
pop ecx
pop ebx
ret
mov eax, 0xb
add esp, 0x3c
pop ebp
pop edi
pop esi
pop edx
pop ecx
pop ebx
ret
mov ecx, 4
mov edi, 0x406c62
mov esi, esp
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x4073a0
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x406eb3
mov eax, 0x11
or byte [0x43b459], 4
add esp, 0x3c
pop ebp
pop edi
pop esi
pop edx
pop ecx
pop ebx
ret