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

Disassembly:
sub esp, 0x14
push esi
mov esi, eax
mov eax, dword [esi + 0x188]
mov ecx, dword [esi + 0x18c]
sub ecx, eax
cmp ecx, 0x21b
jge 0x747e33
xor eax, eax
pop esi
add esp, 0x14
ret
push ebx
push edi
mov edi, dword [esi + 0x184]
lea edx, [esp + 0xc]
push edx
add edi, eax
mov eax, dword [esi]
lea ecx, [edi + 8]
push 0x210
push ecx
push eax
call dword [eax + 0x34]
xor ebx, ebx
add esp, 0x10
cmp eax, ebx
jle 0x7480a8
cmp eax, 0x20f
jg 0x7480a8
mov word [edi + 4], ax
mov eax, dword [esi]
push ebp
push eax
call dword [eax + 0x28]
mov ebp, dword [esi + 0x3c]
mov dword [esi + 0x24], eax
mov ecx, dword [esi + 0x28]
add esp, 4
inc ecx
mov dword [esi + 0x28], ecx
mov ecx, dword [esi + 0x4c]
mov dword [esi + 0x44], eax
movzx edx, word [edi + 4]
add ebp, edx
cmp ecx, ebx
mov dword [esi + 0x3c], ebp
je 0x747ea6
mov edx, eax
sub edx, ecx
cmp edx, 0x64
jbe 0x747ea6
mov dword [esi + 0x4c], ebx
mov dword [esi + 0x54], eax
mov ecx, dword [esi + 0x54]
cmp ecx, ebx
je 0x747ebc
mov edx, eax
sub edx, ecx
cmp edx, 0x64
jbe 0x747ebc
mov dword [esi + 0x54], ebx
mov dword [esi + 0x4c], eax
dec word [edi + 4]
xor eax, eax
mov ax, word [edi + 4]
movzx ecx, ax
mov cl, byte [ecx + edi + 8]
test cl, 0x40
mov byte [edi + 6], cl
je 0x74803e
add eax, 0xfffffff4
mov word [edi + 4], ax
movzx edx, ax
lea eax, [edx + edi + 8]
mov ecx, eax
mov ebx, dword [ecx]
mov eax, dword [ecx + 4]
mov edx, dword [ecx + 8]
xor byte [edi + 6], 0x40
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x20], edx
mov edx, dword [esi + 0xc]
mov ebp, ecx
sub ebp, edx
cmp ebp, 0xa
jge 0x747f0e
mov ebp, 0xa
push eax
mov dword [esi + 0xc], ecx
call fcn.00742e60
mov dword [esi + 0x10], eax
mov eax, dword [esp + 0x24]
push eax
call fcn.00742e40
movzx ecx, ax
push ebx
mov dword [esi + 0x30], ecx
call fcn.00742e60
mov cx, word [esi + 0xc]
sub cx, ax
add esp, 0xc
test cx, cx
jl 0x74803e
cmp cx, 0x9c4
jg 0x74803e
cmp ebp, 0x400
movsx ebx, cx
jge 0x747fab
mov eax, 0x400
sub eax, ebp
mov dword [esp + 0x14], eax
mov eax, dword [esi + 0x1c]
mov edx, ebx
sub edx, eax
jns 0x747f6f
neg edx
mov eax, dword [esi + 0x20]
imul edx, ebp
imul eax, dword [esp + 0x14]
add eax, edx
cdq
and edx, 0x3ff
add eax, edx
sar eax, 0xa
mov dword [esi + 0x20], eax
mov eax, dword [esi + 0x1c]
imul eax, dword [esp + 0x14]
mov edx, ebx
imul edx, ebp
add eax, edx
cdq
and edx, 0x3ff
add eax, edx
sar eax, 0xa
mov dword [esi + 0x1c], eax
jmp 0x747fb5
mov dword [esi + 0x1c], ebx
mov dword [esi + 0x20], 0
mov edx, dword [esi + 0x1c]
mov eax, dword [esi + 0x20]
mov ebp, dword [esi + 0x18]
add eax, edx
mov dword [esi + 0x2c], eax
mov eax, dword [esp + 0x10]
mov edx, eax
sub edx, ebp
cmp edx, 0xfa
jb 0x747ff8
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x70]
inc eax
and eax, 0x1f
mov dword [esi + 0x70], eax
mov word [esi + eax*8 + 0x74], cx
mov word [esi + eax*8 + 0x76], cx
mov word [esi + eax*8 + 0x78], cx
mov word [esi + eax*8 + 0x7a], 1
jmp 0x748037
mov eax, dword [esi + 0x70]
movzx edx, word [esi + eax*8 + 0x74]
cmp ebx, edx
lea ebp, [esi + eax*8 + 0x74]
jge 0x74800c
mov word [ebp], cx
movzx eax, word [ebp + 2]
cmp ebx, eax
jle 0x748018
mov word [ebp + 2], cx
mov cx, word [ebp + 6]
movzx eax, word [ebp + 4]
movzx edx, cx
imul eax, edx
add eax, ebx
lea ebx, [edx + 1]
cdq
idiv ebx
inc ecx
mov word [ebp + 6], cx
mov word [ebp + 4], ax
mov ecx, dword [esp + 0x10]
mov dword [esi + 0x6c], ecx
mov al, byte [edi + 6]
cmp al, 1
pop ebp
jne 0x748069
xor eax, eax
mov ax, word [edi + 8]
test ax, ax
jle 0x74805d
dec eax
mov word [edi + 8], ax
mov eax, edi
call fcn.00747cb0
pop edi
pop ebx
mov eax, 1
pop esi
add esp, 0x14
ret
cmp al, 3
jne 0x748082
mov esi, dword [esi]
push esi
call dword [esi + 0x1c]
add esp, 4
pop edi
pop ebx
mov eax, 1
pop esi
add esp, 0x14
ret
test al, al
je 0x74809c
xor eax, eax
mov ax, word [edi + 4]
add eax, 0xb
and eax, 0x7ffc
mov dword [edi], eax
add dword [esi + 0x188], eax
pop edi
pop ebx
mov eax, 1
pop esi
add esp, 0x14
ret
pop edi
pop ebx
xor eax, eax
pop esi
add esp, 0x14
ret