Function at 0x1003fcf0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
push ebx
push esi
push edi
mov edi, eax
mov eax, dword [edi]
mov dword [ebp - 4], eax
mov eax, dword [eax + 4]
mov dword [ebp - 0xc], eax
movsx eax, word [edi + 0x4c]
mov ecx, dword [edi + eax*4 + 0x78]
mov dx, word [edi + eax*2 + 0x4e]
mov dword [ebp - 0x14], eax
cmp dx, word [ecx + 0x12]
jae 0x1003ff29
cmp byte [edi + 0x49], 1
jne 0x1003ff29
mov ebx, dword [edi + eax*4 + 0x78]
mov eax, dword [ebx + 0x40]
movzx ecx, dx
movzx esi, byte [eax + ecx*2]
movzx edx, word [ebx + 0x14]
lea eax, [eax + ecx*2]
mov dword [ebp - 0x10], ecx
movzx ecx, byte [eax + 1]
shl esi, 8
or esi, ecx
and esi, edx
add esi, dword [ebx + 0x38]
cmp byte [ebx + 5], 0
mov dword [ebp - 0x20], ebx
jne 0x1003fd75
lea eax, [ebp - 8]
push eax
push edi
mov dword [ebp - 8], 0
call fcn.1003c830
add esp, 8
test eax, eax
jne 0x1003ff2e
mov ecx, dword [edi + 0x3c]
mov eax, dword [ebp - 0xc]
mov edx, edi
call fcn.10037e70
test eax, eax
jne 0x1003ff2e
cmp dword [edi + 0x10], eax
jne 0x1003fdc9
mov ecx, dword [edi + 0x18]
mov eax, dword [ebp - 4]
mov edx, dword [edi + 0x1c]
mov dword [ebp - 0x1c], ecx
mov ecx, dword [eax + 4]
mov eax, dword [ecx + 8]
mov dword [ebp - 0x18], edx
test eax, eax
je 0x1003fdc9
test byte [eax + 0x48], 0x10
je 0x1003fdc2
mov edx, dword [eax + 0x18]
cmp edx, dword [ebp - 0x1c]
jne 0x1003fdc2
mov ecx, dword [eax + 0x1c]
cmp ecx, dword [ebp - 0x18]
jne 0x1003fdc2
mov byte [eax + 0x49], 0
mov eax, dword [eax + 8]
test eax, eax
jne 0x1003fda8
mov eax, dword [ebx + 0x44]
mov ecx, dword [eax + 0x10]
mov edx, dword [ecx + 0x94]
cmp edx, dword [ecx + 0x98]
jbe 0x1003fde8
push eax
call fcn.10034120
add esp, 4
jmp 0x1003fded
call fcn.10033f70
test eax, eax
jne 0x1003ff2e
lea eax, [ebp - 4]
push eax
mov eax, esi
mov ecx, ebx
call fcn.1003d430
movzx edx, word [ebp - 4]
add esp, 4
lea ecx, [ebp - 8]
push ecx
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0x10]
push edx
push eax
mov esi, ebx
call fcn.1003d930
mov eax, dword [ebp - 8]
add esp, 0xc
test eax, eax
jne 0x1003ff2e
cmp byte [ebx + 5], al
jne 0x1003fed0
movsx ecx, word [edi + 0x4c]
mov esi, dword [edi + ecx*4 + 0x78]
mov edx, dword [ebp - 0x14]
mov eax, dword [edi + edx*4 + 0x7c]
mov ecx, dword [eax + 0x48]
movzx edx, word [esi + 0x12]
mov eax, dword [esi + 0x40]
movzx ebx, byte [eax + edx*2 - 2]
lea eax, [eax + edx*2]
movzx edx, word [esi + 0x14]
mov dword [ebp - 0x18], ecx
movzx ecx, byte [eax - 1]
shl ebx, 8
or ebx, ecx
and ebx, edx
add ebx, dword [esi + 0x38]
mov eax, esi
push ebx
call fcn.10038520
mov ecx, dword [ebp - 0xc]
mov edx, dword [ecx + 0x50]
movzx eax, ax
mov dword [ebp - 4], eax
mov eax, dword [esi + 0x44]
add esp, 4
mov dword [ebp - 0xc], edx
call fcn.100342e0
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 4]
mov dword [ebp - 8], eax
lea eax, [ebp - 8]
push eax
mov eax, dword [ebp - 0x10]
push ecx
mov ecx, dword [ebp - 0x20]
add edx, 4
push edx
add ebx, 0xfffffffc
push ebx
push eax
mov eax, dword [ebp - 0xc]
call fcn.1003da70
movzx eax, word [esi + 0x12]
mov edx, dword [ebp - 4]
add esp, 0x14
lea ecx, [ebp - 8]
push ecx
push edx
dec eax
push eax
call fcn.1003d930
mov eax, dword [ebp - 8]
add esp, 0xc
test eax, eax
jne 0x1003ff2e
call fcn.1003f960
mov esi, eax
test esi, esi
jne 0x1003ff20
movsx ecx, word [edi + 0x4c]
mov ebx, dword [ebp - 0x14]
cmp ecx, ebx
jle 0x1003ff19
movzx eax, word [edi + 0x4c]
movsx edx, ax
mov ecx, dword [edi + edx*4 + 0x78]
dec eax
mov word [edi + 0x4c], ax
test ecx, ecx
je 0x1003ff06
mov eax, dword [ecx + 0x44]
push eax
call fcn.10033d00
add esp, 4
movsx ecx, word [edi + 0x4c]
cmp ecx, ebx
jg 0x1003fee6
call fcn.1003f960
mov esi, eax
test esi, esi
jne 0x1003ff20
mov eax, edi
call fcn.1003be10
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret