Function at 0x38410750
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x14
mov edi, dword [ebp + 0xc]
xor ebx, ebx
test edi, edi
je 0x384107ae
mov esi, dword [ebp + 0x10]
cmp esi, 0x40
jb 0x384107ae
movzx eax, word [edi]
cmp eax, 0x5a4d
jne 0x384107ae
mov eax, dword [edi + 0x3c]
cmp eax, 0xc
jb 0x384107ae
cmp eax, esi
ja 0x384107a9
lea ecx, [eax + 4]
cmp ecx, esi
ja 0x384107a9
cmp dword [edi + eax], 0x4550
jne 0x384107ae
lea ecx, [eax + 0xf8]
cmp ecx, esi
ja 0x384107a9
lea ecx, [edi + eax]
movzx edx, word [ecx + 0x14]
cmp edx, 0xe0
jae 0x384107b8
mov ebx, 1
mov eax, ebx
add esp, 0x14
pop esi
pop edi
pop ebx
pop ebp
ret
lea ebx, [ecx + 4]
mov dword [ebp - 0x10], ebx
mov ebx, edx
mov dword [ebp - 0x14], edx
add eax, edx
mov edx, dword [ebp - 0x10]
movzx edx, word [edx + 2]
lea ebx, [edx + edx*4]
lea eax, [eax + ebx*8]
add eax, 0xffffff34
mov ebx, 1
cmp eax, esi
ja 0x384107ae
mov eax, dword [ebp + 8]
xor ebx, ebx
test dx, dx
je 0x3841089f
mov eax, dword [ecx + 0x28]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x10]
add eax, ecx
add eax, 0x14
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x10], 0
jmp 0x38410821
mov dword [ebp - 0x1c], eax
add eax, 0x28
add edx, 0xffffffff
je 0x38410873
cmp dword [eax + 0x10], 0
je 0x38410850
mov esi, dword [ebp - 0x10]
test esi, esi
je 0x38410836
mov ecx, dword [eax + 0xc]
cmp ecx, dword [esi + 0xc]
jae 0x38410838
mov esi, eax
mov dword [ebp - 0x10], esi
mov esi, dword [ebp - 0x14]
test esi, esi
je 0x3841084a
mov ecx, dword [eax + 0xc]
cmp ecx, dword [esi + 0xc]
jbe 0x3841084d
mov dword [ebp - 0x14], eax
mov esi, dword [ebp + 0x10]
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x38410819
cmp dword [eax + 8], 0
je 0x38410819
cmp dword [ebp - 0x1c], 0
je 0x38410816
mov dword [ebp - 0x20], edx
mov edx, dword [ebp - 0x1c]
cmp ecx, dword [edx + 0xc]
mov edx, dword [ebp - 0x20]
jb 0x38410816
jmp 0x38410819
mov edx, dword [ebp - 0x1c]
test edx, edx
je 0x384108b6
cmp dword [edx + 0x10], 0
sete al
mov dword [ebp - 0x20], eax
mov ecx, dword [ebp - 0x18]
test ecx, ecx
je 0x384108bd
mov eax, dword [edx + 8]
test eax, eax
je 0x384108bd
add eax, dword [edx + 0xc]
cmp ecx, eax
setae al
mov dword [ebp - 0x18], eax
jmp 0x384108c4
mov dword [ebp - 0x10], 0
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x18], 0
jmp 0x384108c7
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x18], 0
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 8]
mov eax, dword [ecx]
push 0x400
mov dword [ebp - 0x1c], ecx
push ecx
call dword [eax]
add esp, 8
mov dword [ebp - 0x14], eax
test eax, eax
je 0x384107ae
mov eax, dword [ebp - 0x10]
test eax, eax
je 0x38410987
cmp dword [eax + 0x14], esi
jae 0x38410987
push 0x400
push 0
push dword [ebp - 0x14]
mov ebx, eax
call fcn.38416e50
add esp, 0xc
mov dword [ebp - 0x10], ebx
mov edx, dword [ebx + 0x14]
xor eax, eax
mov ecx, 0
cmp edx, esi
je 0x3841093e
xor ebx, ebx
add edx, edi
movzx ecx, byte [ebx + edx]
mov edx, dword [ebp - 0x14]
add dword [edx + ecx*4], 1
add ebx, 1
mov ecx, dword [ebp - 0x10]
mov edx, dword [ecx + 0x14]
mov ecx, esi
sub ecx, edx
cmp ebx, ecx
jb 0x38410920
xor edx, edx
mov esi, dword [ebp - 0x14]
mov dword [ebp - 0x10], ecx
jmp 0x3841095d
add eax, edi
add eax, ecx
add edx, 2
cmp edx, 0x100
mov esi, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x10]
je 0x3841099b
mov ebx, dword [esi + edx*4 + 4]
shl ebx, 8
mov edi, ecx
sub edi, ebx
sub ecx, ebx
jae 0x38410970
neg edi
mov ecx, edi
mov esi, dword [esi + edx*4]
shl esi, 8
mov edi, dword [ebp - 0x10]
mov ebx, edi
sub ebx, esi
sub edi, esi
jae 0x38410948
neg ebx
mov edi, ebx
jmp 0x38410948
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ecx]
push dword [ebp - 0x14]
push ecx
call dword [eax + 8]
add esp, 8
jmp 0x384107ae
xor edx, edx
div ecx
mov edi, eax
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ecx]
push esi
push ecx
call dword [eax + 8]
add esp, 8
mov eax, dword [ebp - 0x20]
shl al, 2
add al, byte [ebp - 0x18]
cmp al, 5
je 0x384109c8
cmp al, 4
je 0x384109cd
cmp al, 1
jne 0x384109d0
add edi, 0xfffffff6
jmp 0x384109d0
add edi, 0xffffffce
jmp 0x384109d0
add edi, 0xffffffd8
xor ebx, ebx
cmp edi, 0x96
setl bl
jmp 0x384107ae