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

Disassembly:
sub esp, 0x10c
mov eax, dword [0x1018f074]
xor eax, esp
mov dword [esp + 0x108], eax
push ebx
mov ebx, dword [esp + 0x120]
push ebp
mov ebp, dword [esp + 0x120]
push esi
mov esi, dword [esp + 0x11c]
push edi
mov edi, dword [esp + 0x124]
mov dword [esp + 0x18], esi
cmp dword [esi + 0x78], 0xffffffff
je 0x1006eeb3
test bl, 8
jne 0x1006eeb3
mov edx, dword [edi + 4]
test dword [edx + 4], 0x7fff0000
jne 0x1006eeb3
test dword [edx + 8], 0x8000
jne 0x1006eeb3
mov eax, dword [esi + 0x10]
mov ecx, dword [edx + 0x21c]
mov dword [esp + 0x24], eax
mov eax, dword [esi + 0x14]
mov dword [esp + 0x20], eax
lea eax, [esp + 0x108]
push eax
lea eax, [edi + 0x4c]
push eax
push dword [edx + 0x68]
mov eax, dword [ecx + 0x48]
push ebx
push ebp
push dword [esi + 0x78]
push edx
call eax
mov edx, eax
add esp, 0x1c
test edx, edx
jne 0x1006eba7
movzx ecx, word [esp + 0x10a]
mov dword [edi + 0x6c], eax
movzx eax, word [esp + 0x108]
shl eax, 6
mov dword [edi + 0x1c], eax
shl ecx, 6
mov dword [edi + 0x18], ecx
movsx ecx, word [esp + 0x10c]
mov eax, ecx
mov dword [edi + 0x48], 0x62697473
shl eax, 6
mov dword [edi + 0x20], eax
movsx eax, word [esp + 0x10e]
shl eax, 6
mov dword [edi + 0x24], eax
movzx eax, word [esp + 0x110]
shl eax, 6
mov dword [edi + 0x28], eax
movsx eax, word [esp + 0x112]
shl eax, 6
mov dword [edi + 0x2c], eax
movsx eax, word [esp + 0x114]
shl eax, 6
mov dword [edi + 0x30], eax
movzx eax, word [esp + 0x116]
shl eax, 6
mov dword [edi + 0x34], eax
test bl, 0x10
je 0x1006eb99
movsx eax, word [esp + 0x112]
mov dword [edi + 0x64], eax
movsx eax, word [esp + 0x114]
jmp 0x1006eba4
movsx eax, word [esp + 0x10e]
mov dword [edi + 0x64], ecx
mov dword [edi + 0x68], eax
mov eax, dword [edi + 4]
cmp dl, 0x9d
jne 0x1006ed29
test byte [eax + 8], 1
mov dword [esp + 0x14], eax
jne 0x1006eeb3
mov dword [esp + 0x1c], 0
mov dword [esp + 0x28], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x18], 0
cmp dword [eax + 0x2f0], 0
je 0x1006ed3c
lea ecx, [esp + 0x2c]
push ecx
lea ecx, [esp + 0x20]
push ecx
push ebp
push eax
call fcn.1006e0b0
lea eax, [esp + 0x28]
push eax
lea eax, [esp + 0x3c]
push eax
push 0
push ebp
push dword [esp + 0x34]
call fcn.1006e0e0
xor eax, eax
add esp, 0x24
mov dword [edi + 0x6c], eax
mov dword [edi + 0x18], eax
mov dword [edi + 0x1c], eax
movsx eax, word [esp + 0x1c]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x24]
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 eax, dword [esp + 0x10]
mov dword [edi + 0x20], eax
movzx eax, word [esp + 0x2c]
mov dword [edi + 0x24], 0
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x24]
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 + 0x14], eax
mov eax, dword [esp + 0x14]
mov dword [edi + 0x28], eax
movsx eax, word [esp + 0x28]
mov dword [edi + 0x2c], 0
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x20]
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 + 0x14], eax
mov eax, dword [esp + 0x14]
mov dword [edi + 0x30], eax
movzx eax, word [esp + 0x18]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x20]
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 + 0x14], eax
mov eax, dword [esp + 0x14]
mov dword [edi + 0x34], eax
xor eax, eax
mov dword [edi + 0x48], 0x62697473
mov byte [edi + 0x5e], 1
mov dword [edi + 0x64], 0
mov dword [edi + 0x68], 0
jmp 0x1006f10e
mov dword [esp + 0x10], eax
mov eax, dword [eax + 8]
test edx, edx
je 0x1006ed43
test al, 1
jne 0x1006eeb3
mov eax, edx
jmp 0x1006f10e
test eax, 0x20001
je 0x1006eeac
push 1
push ebx
push edi
lea eax, [esp + 0x3c]
push esi
push eax
call fcn.10077390
push 1
push 0
lea eax, [esp + 0x4c]
push ebp
push eax
call fcn.10075470
lea eax, [esp + 0x54]
push eax
call fcn.10077370
mov eax, dword [esp + 0x94]
add esp, 0x28
mov dword [edi + 0x38], eax
mov eax, dword [esp + 0xe0]
mov dword [edi + 0x3c], eax
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x31c], 3
jne 0x1006ee30
cmp word [esp + 0x50], 0
jle 0x1006ee30
test bl, 0x10
je 0x1006edc0
mov eax, dword [esp + 0x54]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0xdc]
jmp 0x1006edcc
mov eax, dword [esp + 0x64]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x24]
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 eax, dword [esp + 0x10]
sar eax, 6
add dword [edi + 0x64], eax
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x20]
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 eax, dword [esp + 0x10]
sar eax, 6
add dword [edi + 0x68], eax
cmp dword [edi + 0x28], 0
jne 0x1006ee6e
mov eax, dword [edi + 0x38]
test eax, eax
je 0x1006ee6e
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x24]
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 + 0x14], eax
mov eax, dword [esp + 0x14]
mov dword [edi + 0x28], eax
cmp dword [edi + 0x34], 0
jne 0x1006eeac
mov eax, dword [edi + 0x3c]
test eax, eax
je 0x1006eeac
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x20]
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 + 0x14], eax
mov eax, dword [esp + 0x14]
mov dword [edi + 0x34], eax
xor eax, eax
jmp 0x1006f10e
test ebx, 0x4000
je 0x1006eec5
mov esi, 6
jmp 0x1006f10c
mov eax, ebx
and eax, 1
mov dword [esp + 0x14], eax
jne 0x1006eee0
cmp byte [esi + 0x70], 0
jne 0x1006eee0
mov esi, 0x24
jmp 0x1006f10c
test ebx, 0x100000
je 0x1006efb0
mov eax, dword [edi + 4]
cmp dword [eax + 0x36c], 0
je 0x1006efb0
mov eax, dword [eax + 0x21c]
mov dword [esp + 0x10], eax
push ebp
push edi
mov eax, dword [eax + 0xb4]
call eax
add esp, 8
test eax, eax
jne 0x1006efb0
mov ebx, dword [esp + 0x10]
lea eax, [esp + 0x1c]
mov esi, dword [edi + 4]
push eax
lea eax, [esp + 0x24]
mov dword [edi + 0x48], 0x53564720
push eax
mov eax, dword [ebx + 0xa0]
push ebp
push 0
push esi
call eax
lea eax, [esp + 0x40]
push eax
lea eax, [esp + 0x3c]
push eax
mov eax, dword [ebx + 0xa0]
push ebp
push 1
push esi
call eax
mov ecx, dword [edi + 4]
movzx eax, word [ecx + 0x44]
push eax
mov eax, dword [ecx + 0x58]
movzx eax, word [eax + 0xc]
push eax
movzx eax, word [esp + 0x4c]
push eax
call fcn.1005b340
movzx eax, ax
mov dword [esp + 0x50], eax
mov eax, dword [edi + 4]
movzx ecx, word [eax + 0x44]
mov eax, dword [eax + 0x58]
push ecx
movzx edx, word [eax + 0xe]
movzx eax, word [esp + 0x64]
push edx
push eax
call fcn.1005b340
movzx ecx, ax
add esp, 0x40
movzx eax, word [esp + 0x1c]
shl eax, 6
shl ecx, 6
mov dword [edi + 0x28], eax
xor eax, eax
mov dword [edi + 0x34], ecx
jmp 0x1006f10e
test ebx, 0x800000
jne 0x1006eebb
push 0
push ebx
push edi
lea eax, [esp + 0x3c]
push esi
push eax
call fcn.10077390
mov esi, eax
add esp, 0x14
test esi, esi
jne 0x1006f10c
mov ecx, ebx
and ecx, 0x110
cmp ecx, 0x100
jne 0x1006f002
mov eax, dword [esp + 0x104]
test eax, eax
je 0x1006f002
movzx eax, byte [eax + ebp]
shl eax, 6
mov dword [edi + 0x28], eax
jmp 0x1006f0f1
push 0
push 0
lea eax, [esp + 0x38]
mov dword [edi + 0x48], 0x6f75746c
push ebp
push eax
mov dword [edi + 0x80], 0
mov dword [edi + 0x7c], 0
call fcn.10075470
mov esi, eax
add esp, 0x10
test esi, esi
jne 0x1006f0d5
cmp dword [edi + 0x48], 0x636f6d70
jne 0x1006f057
mov ecx, dword [esp + 0x3c]
mov eax, dword [ecx + 0x30]
mov dword [edi + 0x80], eax
mov eax, dword [ecx + 0x34]
mov dword [edi + 0x84], eax
jmp 0x1006f088
mov eax, dword [esp + 0x3c]
lea ecx, [edi + 0x6c]
movups xmm0, xmmword [eax + 0x14]
movups xmmword [ecx], xmm0
mov eax, dword [eax + 0x24]
mov dword [ecx + 0x10], eax
and dword [edi + 0x7c], 0xfffffdff
mov eax, dword [esp + 0x74]
test eax, eax
je 0x1006f088
push 0
neg eax
push eax
push ecx
call fcn.1005c3f0
add esp, 0xc
test bl, 2
jne case.0x1006f0a8.1
mov eax, dword [esp + 0xcc]
cmp byte [eax + 0x155], 0
je case.0x1006f0a8.2
mov eax, dword [eax + 0x158]
cmp eax, 5
ja case.0x1006f0a8.2
jmp dword [eax*4 + 0x1006f128]
or dword [edi + 0x7c], 0x20
jmp case.0x1006f0a8.1
or dword [edi + 0x7c], 0x30
jmp case.0x1006f0a8.1
or dword [edi + 0x7c], 0x10
jmp case.0x1006f0a8.1
or dword [edi + 0x7c], 8
lea eax, [esp + 0x30]
push ebp
push eax
call fcn.10073660
add esp, 8
mov esi, eax
cmp dword [esp + 0x14], 0
jne 0x1006f0f1
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x2c]
cmp word [eax + 2], 0x18
jae 0x1006f0f1
or dword [edi + 0x7c], 0x100
mov eax, dword [esp + 0x30]
push 0
push dword [eax + 0x64]
lea eax, [esp + 0x104]
push 0
push eax
call fcn.1005a4d0
add esp, 0x10
mov eax, esi
mov ecx, dword [esp + 0x118]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.100d0b93
add esp, 0x10c
ret