Function at 0x41f044
Capabilities:
Parse pe header

Disassembly:
add byte cs:[ebp], ah
js 0x41ef96
add byte gs:[eax], al
add byte [eax], al
add byte [eax + eax], dl
add byte [eax], al
ja 0x41efa2
imul eax, dword [eax], 0x76006e
add byte gs:[edx], dh
add byte cs:[ebp], ah
js 0x41efb2
add byte gs:[eax], al
add byte [eax], al
add byte [eax], bl
add byte [eax], al
add byte [edx], dh
add byte gs:[edi], ah
jae 0x41efc4
jbe 0x41efc6
jb 0x41efc8
xor eax, dword [eax]
xor al, byte [eax]
add byte cs:[ebp], ah
js 0x41efd2
add byte gs:[eax], al
add byte [eax], al
add byte [esi], dl
add byte [eax], al
add byte [edx], dh
add byte gs:[eax], dh
insb byte es:[edi], dx
add byte [ecx], ah
arpl word [eax], ax
add byte gs:[esi], ch
add byte [ebp], ah
js 0x41eff0
add byte gs:[eax], al
add byte [esi], dl
add byte [eax], al
add byte [eax + eax + 0x6c], ah
add byte [eax + eax + 0x68], ch
add byte [edi], ch
jae 0x41f004
je 0x41f006
add byte cs:[ebp], ah
js 0x41f00c
add byte gs:[eax], al
add byte [edx], dl
add byte [eax], al
add byte [esi], ch
je 0x41f018
jbe 0x41f01a
add byte fs:[ebp], ch
add byte cs:[ebp], ah
js 0x41f024
add byte gs:[eax], al
add byte [esi], dl
add byte [eax], al
add byte [eax + eax + 0x63], dh
add byte [eax], dh
jae 0x41f034
jbe 0x41f036
arpl word [eax], ax
jae 0x41f03a
add byte cs:[ebp], ah
js 0x41f040
add byte gs:[eax], al
add byte [ebp - 0x75], dl
push ebp
mov ebp, esp
add esp, 0xfffffff0
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x10], ebx
mov dword [ebp - 8], ecx
mov word [ebp - 2], dx
xor eax, eax
push ebp
push 0x5445f3
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp + 8]
call fcn.00404cd0
xor ebx, ebx
mov eax, ebx
and eax, 0x80000001
jns 0x41f07f
dec eax
or eax, 0xfffffffe
inc eax
test eax, eax
jne 0x41f098
lea eax, [ebp - 0x10]
mov edx, dword [0x55f30c]
mov edx, dword [edx]
mov edx, dword [edx + 0xc]
call fcn.00404d30
jmp 0x41f0ab
lea eax, [ebp - 0x10]
mov edx, dword [0x55f30c]
mov edx, dword [edx]
mov edx, dword [edx + 0x10]
call fcn.00404d30
lea eax, [ebp - 0x10]
mov edx, ebx
sar edx, 1
jns 0x41f0b7
adc edx, 0
mov edx, dword [edx*4 + 0x55e154]
call fcn.00404f20
push 0
push 0x80
push 3
push 0
push 1
push 0x80000000
mov eax, dword [ebp - 0x10]
call fcn.00404f04
push eax
call fcn.00406b1c
mov esi, eax
cmp esi, 0xffffffff
je 0x41f1c5
mov eax, 0x40
call fcn.00403268
mov edi, eax
push 0
lea eax, [ebp - 0xc]
push eax
push 0x40
push edi
push esi
call fcn.00406d7c
test eax, eax
je 0x41f1b8
mov eax, edi
cmp word [eax], 0x5a4d
jne 0x41f1b8
push 0
push 0
mov eax, dword [eax + 0x3c]
push eax
push esi
call fcn.00406ddc
mov eax, edi
call fcn.00403288
mov eax, 0x18
call fcn.00403268
mov edi, eax
push 0
lea eax, [ebp - 0xc]
push eax
push 0x18
push edi
push esi
call fcn.00406d7c
test eax, eax
je 0x41f1b8
mov eax, edi
cmp dword [eax], 0x4550
jne 0x41f1b8
add eax, 4
mov dx, word [eax]
cmp dx, 0x14c
jb 0x41f1b8
cmp dx, 0x150
ja 0x41f1b8
mov eax, edi
call fcn.00403288
mov eax, 0xe0
call fcn.00403268
mov edi, eax
push 0
lea eax, [ebp - 0xc]
push eax
push 0xe0
push edi
push esi
call fcn.00406d7c
test eax, eax
je 0x41f1b8
mov eax, edi
mov dx, word [eax + 0x44]
cmp dx, word [ebp - 2]
jne 0x41f1b8
mov eax, dword [eax + 0x10]
mov edx, dword [ebp - 8]
mov dword [edx], eax
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0x10]
call fcn.00404d0c
mov eax, edi
call fcn.00403288
push esi
call fcn.00406ad4
mov eax, dword [ebp + 8]
mov eax, dword [eax]
xor edx, edx
call fcn.0040502c
jne 0x41f1dd
inc ebx
cmp ebx, 0x19
jne 0x41f071
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x5445fa
lea eax, [ebp - 0x10]
call fcn.00404cd0
ret