Function at 0x1003c870
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x9c
mov eax, dword [0x103ef7a4]
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 0x1003c8cb
push edi
push edi
push edi
push esi
call eax
add esp, 0x10
test eax, eax
je 0x1003c8cb
mov edi, 0x55
jmp 0x1003c8ce
mov dword [esi + 8], edi
test edi, edi
jne 0x1003cef9
lea eax, [ebp - 0x60]
mov edx, 0x10230718
push eax
mov ecx, esi
call fcn.1000e360
mov edi, eax
add esp, 4
test edi, edi
jne 0x1003cef9
lea edi, [eax + 2]
mov eax, 0x5a4d
cmp word [ebp - 0x60], ax
jne 0x1003cef2
mov ecx, dword [esi + 0x14]
xor edi, edi
movzx eax, word [ebp - 0x5e]
test ecx, ecx
je 0x1003c926
push edi
push edi
push eax
push esi
call ecx
add esp, 0x10
test eax, eax
je 0x1003c932
mov edi, 0x55
jmp 0x1003c939
cmp eax, dword [esi + 4]
jbe 0x1003c936
mov edi, 0x55
jmp 0x1003c939
movzx eax, word [ebp - 0x5e]
mov dword [esi + 8], eax
test edi, edi
jne 0x1003cef9
lea eax, [ebp - 0x78]
mov edx, 0x10230700
push eax
mov ecx, esi
call fcn.1000e360
mov edi, eax
add esp, 4
test edi, edi
jne 0x1003cef9
lea edi, [eax + 2]
mov ecx, 0x454e
mov ax, word [ebp - 0x78]
cmp ax, cx
jne 0x1003cb19
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.1000dd00
mov edi, eax
test edi, edi
jne 0x1003cef9
movzx eax, word [ebp - 0x76]
mov ecx, esi
movzx edx, word [ebp - 0x74]
sub edx, eax
call fcn.1000deb0
mov edi, eax
mov dword [ebp - 0x60], edi
test edi, edi
jne 0x1003cef9
mov ecx, esi
call fcn.1000e010
movzx eax, ax
mov dword [ebp - 0x80], eax
cmp eax, 0x10
ja 0x1003ceb9
mov ecx, esi
call fcn.1000e010
movzx eax, ax
mov dword [ebp - 0x6c], eax
test ax, ax
je 0x1003ca2a
nop dword [eax]
mov ecx, esi
call fcn.1000e010
mov ecx, 0x8008
movzx eax, ax
cmp word [ebp - 0x6c], cx
je 0x1003ca16
lea eax, [eax + eax*2]
mov ecx, esi
lea eax, [eax*4 + 4]
add dword [esi + 0x20], eax
call fcn.1000e010
movzx eax, ax
mov dword [ebp - 0x6c], eax
test ax, ax
jne 0x1003c9e0
jmp 0x1003ca2a
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.1000df90
mov eax, dword [ebp - 0x64]
test ax, ax
je 0x1003ceb9
cmp dword [ebp - 0x68], 0
je 0x1003ceb9
movzx ecx, ax
imul eax, ecx, 0x76
cmp eax, dword [esi + 4]
ja 0x1003ceb9
cmp dword [ebp - 0x7c], 0
mov dword [ebx], ecx
jl 0x1003cef9
cmp dword [ebp - 0x70], ecx
jae 0x1003ced6
mov ecx, dword [ebp - 0x84]
lea eax, [ebp - 0x60]
push eax
mov edx, 0xac
call fcn.1000e6e0
mov edi, dword [ebp - 0x60]
add esp, 4
mov dword [ebx + 0x84], eax
test edi, edi
jne 0x1003cef9
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.1000dd00
mov edi, eax
test edi, edi
jne 0x1003cef2
lea edx, [eax + 0xc]
mov ecx, esi
call fcn.1000deb0
mov edi, eax
test edi, edi
jne 0x1003cef2
mov eax, dword [ebp - 0x80]
mov ecx, esi
movzx edi, ax
call fcn.1000e010
movzx edx, ax
mov ecx, edi
mov eax, dword [ebx + 0x84]
shl edx, cl
mov ecx, esi
mov dword [eax], edx
call fcn.1000e010
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.1000df90
mov ecx, dword [ebx + 0x84]
mov edx, esi
call fcn.1003c770
mov edi, eax
jmp 0x1003ceb3
mov ecx, 0x4550
cmp ax, cx
jne 0x1003ceb3
movzx edx, word [ebp - 0x5e]
mov ecx, esi
call fcn.1000dd00
mov edi, eax
test edi, edi
jne 0x1003cef9
lea eax, [ebp - 0x18]
mov edx, 0x10230858
push eax
mov ecx, esi
call fcn.1000e360
mov edi, eax
add esp, 4
test edi, edi
jne 0x1003cef9
cmp dword [ebp - 0x18], 0x4550
jne 0x1003ceb9
mov eax, 0x14c
cmp word [ebp - 0x14], ax
jne 0x1003ceb9
mov eax, 0xe0
cmp word [ebp - 0x10], ax
jne 0x1003ceb9
mov eax, 0x10b
cmp word [ebp - 0xe], ax
jne 0x1003ceb9
xor eax, eax
mov dword [ebx], edi
mov dword [ebp - 0x64], edi
cmp ax, word [ebp - 0x12]
jae 0x1003ceb9
lea eax, [ebp - 0x2c]
mov edx, 0x10230780
push eax
mov ecx, esi
call fcn.1000e360
mov edi, eax
add esp, 4
test edi, edi
jne 0x1003cef9
mov eax, dword [ebp - 0x24]
cmp dword [ebp - 0xc], eax
je 0x1003cbee
mov eax, dword [ebp - 0x64]
inc eax
mov dword [ebp - 0x64], eax
cmp ax, word [ebp - 0x12]
jb 0x1003cba4
mov edi, 3
mov eax, edi
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10117c9f
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp - 0x1c]
mov ecx, esi
call fcn.1000dd00
mov edi, eax
test edi, edi
jne 0x1003cef9
lea eax, [ebp - 0x3c]
mov edx, 0x10230838
push eax
mov ecx, esi
call fcn.1000e360
mov edi, eax
add esp, 4
test edi, edi
jne 0x1003cef9
movzx ecx, word [ebp - 0x2e]
mov dword [ebp - 0x68], eax
movzx eax, word [ebp - 0x30]
add eax, ecx
mov dword [ebp - 0x78], eax
je 0x1003ceb3
xor eax, eax
mov ecx, dword [ebp - 0x1c]
lea eax, [eax + 2]
lea edx, [ecx + eax*8]
mov ecx, esi
call fcn.1000dd00
mov edi, eax
test edi, edi
jne 0x1003cef9
lea eax, [ebp - 0x9c]
mov edx, 0x10230770
push eax
mov ecx, esi
call fcn.1000e360
mov edi, eax
add esp, 4
test edi, edi
jne 0x1003cef9
mov eax, dword [ebp - 0x98]
test eax, eax
jns 0x1003ceb9
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.1000dd00
mov edi, eax
test edi, edi
jne 0x1003cef9
lea eax, [ebp - 0x4c]
mov edx, 0x10230838
push eax
mov ecx, esi
call fcn.1000e360
mov edi, eax
add esp, 4
test edi, edi
jne 0x1003cef9
movzx ecx, word [ebp - 0x3e]
mov dword [ebp - 0x6c], eax
movzx eax, word [ebp - 0x40]
add eax, ecx
mov dword [ebp - 0x8c], eax
je 0x1003cea0
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.1000dd00
mov edi, eax
test edi, edi
jne 0x1003cef9
lea eax, [ebp - 0x94]
mov edx, 0x10230770
push eax
mov ecx, esi
call fcn.1000e360
mov edi, eax
add esp, 4
test edi, edi
jne 0x1003cef9
mov eax, dword [ebp - 0x90]
test eax, eax
jns 0x1003ceb9
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.1000dd00
mov edi, eax
test edi, edi
jne 0x1003cef9
lea eax, [ebp - 0x5c]
mov edx, 0x10230838
push eax
mov ecx, esi
call fcn.1000e360
mov edi, eax
add esp, 4
test edi, edi
jne 0x1003cef9
movzx ecx, word [ebp - 0x4e]
mov dword [ebp - 0x64], eax
movzx eax, word [ebp - 0x50]
add eax, ecx
mov dword [ebp - 0x88], eax
je 0x1003ce8a
xor eax, eax
mov ecx, dword [ebp - 0x7c]
lea eax, [eax + 2]
lea edx, [ecx + eax*8]
mov ecx, esi
call fcn.1000dd00
mov edi, eax
test edi, edi
jne 0x1003cef9
lea eax, [ebp - 0x34]
mov edx, 0x10230770
push eax
mov ecx, esi
call fcn.1000e360
mov edi, eax
add esp, 4
test edi, edi
jne 0x1003cef9
test dword [ebp - 0x90], 0x80000000
jne 0x1003ceb9
cmp dword [ebp - 0x9c], 8
jne 0x1003ce74
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x30]
lea edx, [edx + ecx]
mov ecx, esi
call fcn.1000dd00
mov edi, eax
test edi, edi
jne 0x1003cef9
lea eax, [ebp - 0x14]
mov edx, 0x10230890
push eax
mov ecx, esi
call fcn.1000e360
mov edi, eax
add esp, 4
mov dword [ebp - 0x60], edi
test edi, edi
jne 0x1003cef9
mov eax, dword [ebp - 0x70]
cmp eax, dword [ebx]
jne 0x1003ce72
mov ecx, dword [ebp - 0x84]
lea eax, [ebp - 0x60]
push eax
mov edx, 0xac
call fcn.1000e6e0
mov edi, dword [ebp - 0x60]
add esp, 4
mov dword [ebx + 0x84], eax
test edi, edi
jne 0x1003cef9
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.1003c770
mov edi, eax
test edi, edi
jne 0x1003cef2
inc dword [ebx]
mov eax, dword [ebp - 0x64]
inc eax
mov dword [ebp - 0x64], eax
movzx eax, ax
cmp eax, dword [ebp - 0x88]
jb 0x1003cd84
mov eax, dword [ebp - 0x6c]
inc eax
mov dword [ebp - 0x6c], eax
movzx eax, ax
cmp eax, dword [ebp - 0x8c]
jb 0x1003cce0
mov eax, dword [ebp - 0x68]
inc eax
mov dword [ebp - 0x68], eax
movzx eax, ax
cmp eax, dword [ebp - 0x78]
jb 0x1003cc37
mov eax, dword [ebx]
test eax, eax
jne 0x1003ced1
mov edi, 3
mov eax, edi
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10117c9f
mov esp, ebp
pop ebp
ret
cmp dword [ebp - 0x70], eax
jl 0x1003ceee
mov edi, 6
mov eax, edi
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10117c9f
mov esp, ebp
pop ebp
ret
test edi, edi
je 0x1003cef9
mov ecx, ebx
call fcn.1003c6f0
mov ecx, dword [ebp - 4]
mov eax, edi
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.10117c9f
mov esp, ebp
pop ebp
ret