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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x5c
mov ebx, eax
mov dword [esp + 0x18], edx
mov esi, ecx
lea eax, [ecx + ecx*4]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*2]
lea ebp, [edx + eax*4 + 4]
mov edx, dword [ebp + 0xc4]
mov dword [esp + 0x14], edx
mov edi, dword [ebp + 0xc8]
mov dword [esp + 0x10], edi
mov edi, dword [ebx + 0x10]
test edi, 8
jne 0x647a5978
mov eax, dword [ebx]
mov dword [esp + 0x1c], eax
imul edx
mov ecx, edx
sar ecx, 0x1f
add ecx, 0x8000
add eax, ecx
adc edx, 0
shr eax, 0x10
shl edx, 0x10
add eax, edx
add eax, dword [esp + 0x10]
mov dword [esp + 0x24], eax
mov eax, dword [ebx + 4]
mov dword [esp + 0x20], eax
mov edx, dword [esp + 0x14]
imul edx
mov ecx, edx
sar ecx, 0x1f
add ecx, 0x8000
add eax, ecx
adc edx, 0
shr eax, 0x10
shl edx, 0x10
add eax, edx
mov dword [esp + 0x10], eax
mov dword [esp + 0x2c], eax
test esi, esi
jne 0x647a5980
mov ecx, dword [esp + 0x70]
cmp byte [ecx + 0x78], 0
je 0x647a5b4c
cmp byte [ecx + 0x7a], 0
jne 0x647a5b68
mov eax, dword [esp + 0x10]
mov dword [ebx + 0xc], eax
mov dword [esp + 0x30], 0
mov dword [esp + 0x28], 0
mov dword [esp + 0x34], 0
mov edi, dword [ebx + 0x14]
test edi, edi
je 0x647a587b
test byte [edi + 0x10], 8
je 0x647a5c08
mov eax, dword [esp + 0x20]
sar eax, 1
add eax, dword [esp + 0x1c]
mov edx, dword [edi + 4]
sar edx, 1
add edx, dword [edi]
sub eax, edx
mov edx, dword [esp + 0x14]
imul edx
mov ecx, edx
sar ecx, 0x1f
add ecx, 0x8000
add eax, ecx
adc edx, 0
shr eax, 0x10
shl edx, 0x10
add eax, edx
mov edx, dword [edi + 0xc]
sar edx, 1
add edx, dword [edi + 8]
add edx, eax
mov eax, dword [esp + 0x10]
sar eax, 1
sub edx, eax
mov dword [esp + 0x24], edx
mov esi, dword [esp + 0x24]
mov dword [ebx + 8], esi
mov eax, dword [esp + 0x10]
mov dword [ebx + 0xc], eax
mov edx, dword [esp + 0x70]
cmp byte [edx + 0x7c], 0
je 0x647a58d8
cmp eax, 0x40
jle 0x647a5bc8
mov eax, dword [ebp + 8]
mov edx, dword [esp + 0x10]
sub edx, eax
js 0x647a5d70
cmp edx, 0x27
jg 0x647a58bd
cmp eax, 0x2f
jle 0x647a5d63
mov dword [esp + 0x2c], eax
cmp dword [esp + 0x2c], 0xbf
jle 0x647a5d23
add dword [esp + 0x2c], 0x20
and dword [esp + 0x2c], 0xffffffc0
lea esi, [esi]
mov edx, dword [esp + 0x24]
add edx, 0x20
and edx, 0xffffffc0
sub edx, dword [esp + 0x24]
mov esi, dword [esp + 0x24]
mov edi, dword [esp + 0x2c]
lea eax, [esi + edi + 0x20]
and eax, 0xffffffc0
sub eax, esi
sub eax, edi
mov esi, edx
test edx, edx
js 0x647a5c38
mov ecx, eax
test eax, eax
js 0x647a5c30
cmp esi, ecx
jg 0x647a5913
mov eax, edx
add eax, dword [esp + 0x24]
mov dword [ebx + 8], eax
mov edi, dword [esp + 0x2c]
mov dword [ebx + 0xc], edi
mov edx, dword [esp + 0x30]
test edx, edx
je 0x647a5974
mov edx, dword [ebx + 0xc]
cmp edx, 0x3f
jle 0x647a5b7c
add edx, 0x20
and edx, 0xffffffc0
cmp dword [esp + 0x28], 2
je 0x647a5b9c
cmp dword [esp + 0x28], 3
je 0x647a5974
cmp dword [esp + 0x28], 1
je 0x647a5b88
mov dword [ebx + 0xc], edx
test dl, 0x40
jne 0x647a5bb8
sar edx, 1
lea eax, [edx + eax + 0x20]
and eax, 0xffffffc0
sub eax, edx
mov dword [ebx + 8], eax
nop
or dword [ebx + 0x10], 8
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
ret
cmp esi, 1
jne 0x647a5804
mov eax, dword [esp + 0x70]
cmp byte [eax + 0x79], 0
je 0x647a5b4c
cmp byte [eax + 0x7b], 0
jne 0x647a5ba4
mov eax, dword [esp + 0x10]
mov dword [ebx + 0xc], eax
mov dword [esp + 0x30], 0
mov ecx, dword [esp + 0x1c]
add ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x18]
movzx edx, byte [edx + 0x9bc]
mov dword [esp + 0x48], edx
mov edi, dword [esp + 0x18]
mov edx, dword [edi + 0x19c]
add edi, 0x1a0
mov dword [esp + 0x40], edi
test edx, edx
je 0x647a5ca4
mov edi, ecx
mov eax, dword [esp + 0x18]
sub edi, dword [eax + 0x1ac]
mov dword [esp + 0x44], edi
mov eax, dword [eax + 0x9b8]
mov dword [esp + 0x28], eax
neg eax
mov dword [esp + 0x34], eax
cmp edi, eax
jl 0x647a5ca4
mov eax, dword [esp + 0x28]
mov edi, dword [esp + 0x18]
add eax, dword [edi + 0x1a8]
cmp ecx, eax
jle 0x647a5c8c
mov dword [esp + 0x38], ebp
mov eax, dword [esp + 0x40]
mov dword [esp + 0x3c], ebx
mov ebx, dword [esp + 0x28]
mov dword [esp + 0x28], esi
mov esi, dword [esp + 0x34]
jmp 0x647a5a52
mov edi, ecx
sub edi, dword [eax + 0xc]
cmp edi, esi
jl 0x647a5a58
mov ebp, dword [eax + 8]
add ebp, ebx
cmp ecx, ebp
jle 0x647a5c78
add eax, 0x20
dec edx
jne 0x647a5a3c
mov ebp, dword [esp + 0x38]
mov ebx, dword [esp + 0x3c]
mov esi, dword [esp + 0x28]
mov dword [esp + 0x4c], 2
mov dword [esp + 0x34], 0
mov dword [esp + 0x28], 0
mov edx, dword [esp + 0x18]
mov eax, dword [edx + 0x3a0]
lea edi, [eax - 1]
mov edx, edi
shl edx, 5
mov ecx, dword [esp + 0x18]
lea edx, [ecx + edx + 0x3a4]
test eax, eax
je 0x647a5c70
mov eax, dword [edx + 8]
sub eax, dword [esp + 0x1c]
mov ecx, dword [ecx + 0x9b8]
mov dword [esp + 0x38], ecx
neg ecx
mov dword [esp + 0x3c], ecx
cmp eax, ecx
jl 0x647a5c70
mov ecx, dword [edx + 0xc]
sub ecx, dword [esp + 0x38]
cmp dword [esp + 0x1c], ecx
jge 0x647a5c4c
mov dword [esp + 0x40], ebp
mov ebp, dword [esp + 0x1c]
mov dword [esp + 0x44], ebx
mov ebx, dword [esp + 0x3c]
mov dword [esp + 0x3c], esi
mov esi, dword [esp + 0x38]
jmp 0x647a5b03
mov eax, dword [edx + 8]
sub eax, ebp
cmp eax, ebx
jl 0x647a5b0a
mov ecx, dword [edx + 0xc]
sub ecx, esi
cmp ebp, ecx
jge 0x647a5c40
dec edi
sub edx, 0x20
test edi, edi
jne 0x647a5aec
mov ebp, dword [esp + 0x40]
mov ebx, dword [esp + 0x44]
mov esi, dword [esp + 0x3c]
xor eax, eax
cmp dword [esp + 0x28], 2
je 0x647a5bec
cmp dword [esp + 0x28], 3
je 0x647a5bf4
cmp dword [esp + 0x28], 1
jne 0x647a5823
mov eax, dword [esp + 0x34]
sub eax, dword [esp + 0x10]
mov dword [ebx + 8], eax
jmp 0x647a5921
mov esi, dword [esp + 0x24]
mov dword [ebx + 8], esi
mov eax, dword [esp + 0x10]
mov dword [ebx + 0xc], eax
or edi, 8
mov dword [ebx + 0x10], edi
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esp + 0x10]
mov dword [ebx + 0xc], eax
mov dword [esp + 0x30], 1
jmp 0x647a5813
mov edx, 0x40
jmp 0x647a593b
mov eax, dword [esp + 0x34]
sub eax, edx
mov dword [ebx + 8], eax
mov dword [ebx + 0xc], edx
jmp 0x647a5974
mov dword [ebx + 0xc], edx
jmp 0x647a5974
mov eax, dword [esp + 0x10]
mov dword [ebx + 0xc], eax
mov dword [esp + 0x30], 1
jmp 0x647a59b0
sar edx, 1
add eax, edx
and eax, 0xffffffc0
add eax, 0x20
jmp 0x647a596d
cmp eax, 0x1f
jle 0x647a5ce4
sar eax, 1
add esi, eax
and esi, 0xffffffc0
mov dword [esp + 0x24], esi
mov dword [esp + 0x2c], 0x40
jmp 0x647a58d8
mov dword [ebx + 8], eax
jmp 0x647a5921
mov dword [ebx + 8], eax
mov edx, dword [esp + 0x34]
sub edx, eax
mov dword [ebx + 0xc], edx
jmp 0x647a5921
mov ecx, dword [esp + 0x70]
mov dword [esp], ecx
mov ecx, esi
mov edx, dword [esp + 0x18]
mov eax, edi
call fcn.647a5750
mov eax, dword [ebx]
mov dword [esp + 0x1c], eax
mov eax, dword [ebx + 4]
mov dword [esp + 0x20], eax
jmp 0x647a5834
neg ecx
jmp 0x647a590d
neg esi
jmp 0x647a5903
mov ebp, dword [esp + 0x40]
mov ebx, dword [esp + 0x44]
mov esi, dword [esp + 0x3c]
mov edi, dword [esp + 0x48]
test edi, edi
jne 0x647a5c60
mov edi, dword [esp + 0x18]
cmp eax, dword [edi + 0x9b4]
jge 0x647a5c70
mov eax, dword [edx + 0x10]
mov edx, dword [esp + 0x4c]
mov dword [esp + 0x28], edx
jmp 0x647a5b18
xor eax, eax
jmp 0x647a5b18
mov ebp, dword [esp + 0x38]
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], edi
mov ebx, dword [esp + 0x3c]
mov esi, dword [esp + 0x28]
mov eax, dword [esp + 0x48]
test eax, eax
jne 0x647a5cc4
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x18]
cmp dword [edx + 0x9b4], ecx
jge 0x647a5cc4
mov dword [esp + 0x4c], 2
mov dword [esp + 0x34], 0
mov dword [esp + 0x28], 0
jmp 0x647a5a7c
mov edi, dword [esp + 0x40]
mov edi, dword [edi + 0x10]
mov dword [esp + 0x34], edi
mov dword [esp + 0x4c], 3
mov dword [esp + 0x28], 1
jmp 0x647a5a7c
mov ecx, dword [esp + 0x10]
test ecx, ecx
jle 0x647a5d54
mov eax, dword [esp + 0x24]
add eax, 0x20
and eax, 0xffffffc0
mov ecx, dword [esp + 0x24]
add ecx, dword [esp + 0x10]
lea edx, [ecx + 0x20]
and edx, 0xffffffc0
mov esi, edx
sub esi, ecx
mov ecx, esi
mov esi, eax
sub esi, dword [esp + 0x24]
js 0x647a5d77
test ecx, ecx
js 0x647a5d7b
cmp esi, ecx
jg 0x647a5d4b
mov dword [esp + 0x24], eax
jmp 0x647a58d8
mov eax, dword [esp + 0x2c]
and eax, 0x3f
cmp eax, 9
jle 0x647a58d8
mov edx, dword [esp + 0x2c]
and edx, 0xffffffc0
cmp eax, 0x1f
jg 0x647a5d7f
add edx, 0xa
mov dword [esp + 0x2c], edx
jmp 0x647a58d8
mov dword [esp + 0x24], edx
jmp 0x647a58d8
add dword [esp + 0x24], 0x20
and dword [esp + 0x24], 0xffffffc0
jmp 0x647a58d8
mov dword [esp + 0x2c], 0x36
jmp 0x647a58d8
neg edx
jmp 0x647a58ab
neg esi
jmp 0x647a5d12
neg ecx
jmp 0x647a5d16
cmp eax, 0x35
jg 0x647a58d8
add edx, 0x36
mov dword [esp + 0x2c], edx
jmp 0x647a58d8