Function at 0x1003c2f0
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x9c
mov eax, dword [0x10304724]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, edx
mov dword [ebp - 0x7c], eax
push ebx
mov ebx, ecx
cdq
xor eax, edx
push esi
sub eax, edx
mov esi, dword [ebx + 0x68]
mov ecx, dword [ebx + 0x64]
movzx eax, ax
push edi
mov dword [ebx + 0x84], 0
xor edi, edi
mov dword [ebp - 0x70], eax
mov eax, dword [esi + 0x14]
mov dword [ebp - 0x84], ecx
test eax, eax
je 0x1003c34b
push edi
push edi
push edi
push esi
call eax
add esp, 0x10
test eax, eax
je 0x1003c34b
mov edi, 0x55
jmp 0x1003c34e
mov dword [esi + 8], edi
test edi, edi
jne 0x1003c979
lea eax, [ebp - 0x60]
mov edx, 0x1022ff58
push eax
mov ecx, esi
call fcn.1000ddf0
mov edi, eax
add esp, 4
test edi, edi
jne 0x1003c979
lea edi, [eax + 2]
mov eax, 0x5a4d
cmp word [ebp - 0x60], ax
jne 0x1003c972
mov ecx, dword [esi + 0x14]
xor edi, edi
movzx eax, word [ebp - 0x5e]
test ecx, ecx
je 0x1003c3a6
push edi
push edi
push eax
push esi
call ecx
add esp, 0x10
test eax, eax
je 0x1003c3b2
mov edi, 0x55
jmp 0x1003c3b9
cmp eax, dword [esi + 4]
jbe 0x1003c3b6
mov edi, 0x55
jmp 0x1003c3b9
movzx eax, word [ebp - 0x5e]
mov dword [esi + 8], eax
test edi, edi
jne 0x1003c979
lea eax, [ebp - 0x78]
mov edx, 0x1022ff40
push eax
mov ecx, esi
call fcn.1000ddf0
mov edi, eax
add esp, 4
test edi, edi
jne 0x1003c979
lea edi, [eax + 2]
mov ecx, 0x454e
mov ax, word [ebp - 0x78]
cmp ax, cx
jne 0x1003c599
movzx edx, word [ebp - 0x5e]
xor eax, eax
mov dword [ebp - 0x64], eax
mov ecx, esi
mov dword [ebp - 0x68], eax
movzx eax, word [ebp - 0x76]
add edx, eax
call fcn.1000d790
mov edi, eax
test edi, edi
jne 0x1003c979
movzx eax, word [ebp - 0x76]
mov ecx, esi
movzx edx, word [ebp - 0x74]
sub edx, eax
call fcn.1000d940
mov edi, eax
mov dword [ebp - 0x60], edi
test edi, edi
jne 0x1003c979
mov ecx, esi
call fcn.1000daa0
movzx eax, ax
mov dword [ebp - 0x80], eax
cmp eax, 0x10
ja 0x1003c939
mov ecx, esi
call fcn.1000daa0
movzx eax, ax
mov dword [ebp - 0x6c], eax
test ax, ax
je 0x1003c4aa
nop dword [eax]
mov ecx, esi
call fcn.1000daa0
mov ecx, 0x8008
movzx eax, ax
cmp word [ebp - 0x6c], cx
je 0x1003c496
lea eax, [eax + eax*2]
mov ecx, esi
lea eax, [eax*4 + 4]
add dword [esi + 0x20], eax
call fcn.1000daa0
movzx eax, ax
mov dword [ebp - 0x6c], eax
test ax, ax
jne 0x1003c460
jmp 0x1003c4aa
mov ecx, dword [esi + 8]
sub ecx, dword [esi + 0x24]
mov dword [ebp - 0x64], eax
mov eax, dword [esi + 0x20]
add eax, 4
add eax, ecx
mov dword [ebp - 0x68], eax
mov ecx, esi
call fcn.1000da20
mov eax, dword [ebp - 0x64]
test ax, ax
je 0x1003c939
cmp dword [ebp - 0x68], 0
je 0x1003c939
movzx ecx, ax
imul eax, ecx, 0x76
cmp eax, dword [esi + 4]
ja 0x1003c939
cmp dword [ebp - 0x7c], 0
mov dword [ebx], ecx
jl 0x1003c979
cmp dword [ebp - 0x70], ecx
jae 0x1003c956
mov ecx, dword [ebp - 0x84]
lea eax, [ebp - 0x60]
push eax
mov edx, 0xac
call fcn.1000e170
mov edi, dword [ebp - 0x60]
add esp, 4
mov dword [ebx + 0x84], eax
test edi, edi
jne 0x1003c979
mov eax, dword [ebp - 0x70]
mov ecx, dword [ebp - 0x68]
lea eax, [eax + eax*2]
lea edx, [ecx + eax*4]
mov ecx, esi
call fcn.1000d790
mov edi, eax
test edi, edi
jne 0x1003c972
lea edx, [eax + 0xc]
mov ecx, esi
call fcn.1000d940
mov edi, eax
test edi, edi
jne 0x1003c972
mov eax, dword [ebp - 0x80]
mov ecx, esi
movzx edi, ax
call fcn.1000daa0
movzx edx, ax
mov ecx, edi
mov eax, dword [ebx + 0x84]
shl edx, cl
mov ecx, esi
mov dword [eax], edx
call fcn.1000daa0
movzx edx, ax
mov ecx, edi
mov eax, dword [ebx + 0x84]
shl edx, cl
mov ecx, esi
mov dword [eax + 0xa4], edx
add dword [esi + 0x20], 8
call fcn.1000da20
mov ecx, dword [ebx + 0x84]
mov edx, esi
call fcn.1003c1f0
mov edi, eax
jmp 0x1003c933
mov ecx, 0x4550
cmp ax, cx
jne 0x1003c933
movzx edx, word [ebp - 0x5e]
mov ecx, esi
call fcn.1000d790
mov edi, eax
test edi, edi
jne 0x1003c979
lea eax, [ebp - 0x18]
mov edx, 0x10230098
push eax
mov ecx, esi
call fcn.1000ddf0
mov edi, eax
add esp, 4
test edi, edi
jne 0x1003c979
cmp dword [ebp - 0x18], 0x4550
jne 0x1003c939
mov eax, 0x14c
cmp word [ebp - 0x14], ax
jne 0x1003c939
mov eax, 0xe0
cmp word [ebp - 0x10], ax
jne 0x1003c939
mov eax, 0x10b
cmp word [ebp - 0xe], ax
jne 0x1003c939
xor eax, eax
mov dword [ebx], edi
mov dword [ebp - 0x64], edi
cmp ax, word [ebp - 0x12]
jae 0x1003c939
lea eax, [ebp - 0x2c]
mov edx, 0x1022ffc0
push eax
mov ecx, esi
call fcn.1000ddf0
mov edi, eax
add esp, 4
test edi, edi
jne 0x1003c979
mov eax, dword [ebp - 0x24]
cmp dword [ebp - 0xc], eax
je 0x1003c66e
mov eax, dword [ebp - 0x64]
inc eax
mov dword [ebp - 0x64], eax
cmp ax, word [ebp - 0x12]
jb 0x1003c624
mov edi, 3
mov eax, edi
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1011796f
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp - 0x1c]
mov ecx, esi
call fcn.1000d790
mov edi, eax
test edi, edi
jne 0x1003c979
lea eax, [ebp - 0x3c]
mov edx, 0x10230078
push eax
mov ecx, esi
call fcn.1000ddf0
mov edi, eax
add esp, 4
test edi, edi
jne 0x1003c979
movzx ecx, word [ebp - 0x2e]
mov dword [ebp - 0x68], eax
movzx eax, word [ebp - 0x30]
add eax, ecx
mov dword [ebp - 0x78], eax
je 0x1003c933
xor eax, eax
mov ecx, dword [ebp - 0x1c]
lea eax, [eax + 2]
lea edx, [ecx + eax*8]
mov ecx, esi
call fcn.1000d790
mov edi, eax
test edi, edi
jne 0x1003c979
lea eax, [ebp - 0x9c]
mov edx, 0x1022ffb0
push eax
mov ecx, esi
call fcn.1000ddf0
mov edi, eax
add esp, 4
test edi, edi
jne 0x1003c979
mov eax, dword [ebp - 0x98]
test eax, eax
jns 0x1003c939
and eax, 0x7fffffff
mov ecx, esi
mov dword [ebp - 0x98], eax
add eax, dword [ebp - 0x1c]
mov edx, eax
mov dword [ebp - 0x80], eax
call fcn.1000d790
mov edi, eax
test edi, edi
jne 0x1003c979
lea eax, [ebp - 0x4c]
mov edx, 0x10230078
push eax
mov ecx, esi
call fcn.1000ddf0
mov edi, eax
add esp, 4
test edi, edi
jne 0x1003c979
movzx ecx, word [ebp - 0x3e]
mov dword [ebp - 0x6c], eax
movzx eax, word [ebp - 0x40]
add eax, ecx
mov dword [ebp - 0x8c], eax
je 0x1003c920
xor eax, eax
nop dword [eax + eax]
mov ecx, dword [ebp - 0x80]
lea eax, [eax + 2]
lea edx, [ecx + eax*8]
mov ecx, esi
call fcn.1000d790
mov edi, eax
test edi, edi
jne 0x1003c979
lea eax, [ebp - 0x94]
mov edx, 0x1022ffb0
push eax
mov ecx, esi
call fcn.1000ddf0
mov edi, eax
add esp, 4
test edi, edi
jne 0x1003c979
mov eax, dword [ebp - 0x90]
test eax, eax
jns 0x1003c939
and eax, 0x7fffffff
mov ecx, esi
mov dword [ebp - 0x90], eax
add eax, dword [ebp - 0x1c]
mov edx, eax
mov dword [ebp - 0x7c], eax
call fcn.1000d790
mov edi, eax
test edi, edi
jne 0x1003c979
lea eax, [ebp - 0x5c]
mov edx, 0x10230078
push eax
mov ecx, esi
call fcn.1000ddf0
mov edi, eax
add esp, 4
test edi, edi
jne 0x1003c979
movzx ecx, word [ebp - 0x4e]
mov dword [ebp - 0x64], eax
movzx eax, word [ebp - 0x50]
add eax, ecx
mov dword [ebp - 0x88], eax
je 0x1003c90a
xor eax, eax
mov ecx, dword [ebp - 0x7c]
lea eax, [eax + 2]
lea edx, [ecx + eax*8]
mov ecx, esi
call fcn.1000d790
mov edi, eax
test edi, edi
jne 0x1003c979
lea eax, [ebp - 0x34]
mov edx, 0x1022ffb0
push eax
mov ecx, esi
call fcn.1000ddf0
mov edi, eax
add esp, 4
test edi, edi
jne 0x1003c979
test dword [ebp - 0x90], 0x80000000
jne 0x1003c939
cmp dword [ebp - 0x9c], 8
jne 0x1003c8f4
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x30]
lea edx, [edx + ecx]
mov ecx, esi
call fcn.1000d790
mov edi, eax
test edi, edi
jne 0x1003c979
lea eax, [ebp - 0x14]
mov edx, 0x102300d0
push eax
mov ecx, esi
call fcn.1000ddf0
mov edi, eax
add esp, 4
mov dword [ebp - 0x60], edi
test edi, edi
jne 0x1003c979
mov eax, dword [ebp - 0x70]
cmp eax, dword [ebx]
jne 0x1003c8f2
mov ecx, dword [ebp - 0x84]
lea eax, [ebp - 0x60]
push eax
mov edx, 0xac
call fcn.1000e170
mov edi, dword [ebp - 0x60]
add esp, 4
mov dword [ebx + 0x84], eax
test edi, edi
jne 0x1003c979
mov ecx, dword [ebp - 0x14]
mov edx, esi
sub ecx, dword [ebp - 0x24]
add ecx, dword [ebp - 0x1c]
mov dword [eax], ecx
mov ecx, dword [ebx + 0x84]
mov eax, dword [ebp - 0x10]
mov dword [ecx + 0xa4], eax
mov ecx, dword [ebx + 0x84]
call fcn.1003c1f0
mov edi, eax
test edi, edi
jne 0x1003c972
inc dword [ebx]
mov eax, dword [ebp - 0x64]
inc eax
mov dword [ebp - 0x64], eax
movzx eax, ax
cmp eax, dword [ebp - 0x88]
jb 0x1003c804
mov eax, dword [ebp - 0x6c]
inc eax
mov dword [ebp - 0x6c], eax
movzx eax, ax
cmp eax, dword [ebp - 0x8c]
jb 0x1003c760
mov eax, dword [ebp - 0x68]
inc eax
mov dword [ebp - 0x68], eax
movzx eax, ax
cmp eax, dword [ebp - 0x78]
jb 0x1003c6b7
mov eax, dword [ebx]
test eax, eax
jne 0x1003c951
mov edi, 3
mov eax, edi
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1011796f
mov esp, ebp
pop ebp
ret
cmp dword [ebp - 0x70], eax
jl 0x1003c96e
mov edi, 6
mov eax, edi
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1011796f
mov esp, ebp
pop ebp
ret
test edi, edi
je 0x1003c979
mov ecx, ebx
call fcn.1003c170
mov ecx, dword [ebp - 4]
mov eax, edi
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.1011796f
mov esp, ebp
pop ebp
ret