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

Disassembly:
sub esp, 0x10c
mov eax, dword [0x103b0024]
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 0x100c29f3
test bl, 8
jne 0x100c29f3
mov edx, dword [edi + 4]
test dword [edx + 4], 0x7fff0000
jne 0x100c29f3
test dword [edx + 8], 0x8000
jne 0x100c29f3
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 0x100c26e7
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 0x100c26d9
movsx eax, word [esp + 0x112]
mov dword [edi + 0x64], eax
movsx eax, word [esp + 0x114]
jmp 0x100c26e4
movsx eax, word [esp + 0x10e]
mov dword [edi + 0x64], ecx
mov dword [edi + 0x68], eax
mov eax, dword [edi + 4]
cmp dl, 0x9d
jne 0x100c2869
test byte [eax + 8], 1
mov dword [esp + 0x14], eax
jne 0x100c29f3
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 0x100c287c
lea ecx, [esp + 0x2c]
push ecx
lea ecx, [esp + 0x20]
push ecx
push ebp
push eax
call fcn.100c1bf0
lea eax, [esp + 0x28]
push eax
lea eax, [esp + 0x3c]
push eax
push 0
push ebp
push dword [esp + 0x34]
call fcn.100c1c20
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 0x100c2c4e
mov dword [esp + 0x10], eax
mov eax, dword [eax + 8]
test edx, edx
je 0x100c2883
test al, 1
jne 0x100c29f3
mov eax, edx
jmp 0x100c2c4e
test eax, 0x20001
je 0x100c29ec
push 1
push ebx
push edi
lea eax, [esp + 0x3c]
push esi
push eax
call fcn.100caee0
push 1
push 0
lea eax, [esp + 0x4c]
push ebp
push eax
call fcn.100c8f80
lea eax, [esp + 0x54]
push eax
call fcn.100caec0
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 0x100c2970
cmp word [esp + 0x50], 0
jle 0x100c2970
test bl, 0x10
je 0x100c2900
mov eax, dword [esp + 0x54]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0xdc]
jmp 0x100c290c
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 0x100c29ae
mov eax, dword [edi + 0x38]
test eax, eax
je 0x100c29ae
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 0x100c29ec
mov eax, dword [edi + 0x3c]
test eax, eax
je 0x100c29ec
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 0x100c2c4e
test ebx, 0x4000
je 0x100c2a05
mov esi, 6
jmp 0x100c2c4c
mov eax, ebx
and eax, 1
mov dword [esp + 0x14], eax
jne 0x100c2a20
cmp byte [esi + 0x70], 0
jne 0x100c2a20
mov esi, 0x24
jmp 0x100c2c4c
test ebx, 0x100000
je 0x100c2af0
mov eax, dword [edi + 4]
cmp dword [eax + 0x36c], 0
je 0x100c2af0
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 0x100c2af0
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.100afcb0
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.100afcb0
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 0x100c2c4e
test ebx, 0x800000
jne 0x100c29fb
push 0
push ebx
push edi
lea eax, [esp + 0x3c]
push esi
push eax
call fcn.100caee0
mov esi, eax
add esp, 0x14
test esi, esi
jne 0x100c2c4c
mov ecx, ebx
and ecx, 0x110
cmp ecx, 0x100
jne 0x100c2b42
mov eax, dword [esp + 0x104]
test eax, eax
je 0x100c2b42
movzx eax, byte [eax + ebp]
shl eax, 6
mov dword [edi + 0x28], eax
jmp 0x100c2c31
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.100c8f80
mov esi, eax
add esp, 0x10
test esi, esi
jne 0x100c2c15
cmp dword [edi + 0x48], 0x636f6d70
jne 0x100c2b97
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 0x100c2bc8
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 0x100c2bc8
push 0
neg eax
push eax
push ecx
call fcn.100b0d50
add esp, 0xc
test bl, 2
jne case.0x100c2be8.1
mov eax, dword [esp + 0xcc]
cmp byte [eax + 0x155], 0
je case.0x100c2be8.2
mov eax, dword [eax + 0x158]
cmp eax, 5
ja case.0x100c2be8.2
jmp dword [eax*4 + 0x100c2c68]
or dword [edi + 0x7c], 0x20
jmp case.0x100c2be8.1
or dword [edi + 0x7c], 0x30
jmp case.0x100c2be8.1
or dword [edi + 0x7c], 0x10
jmp case.0x100c2be8.1
or dword [edi + 0x7c], 8
lea eax, [esp + 0x30]
push ebp
push eax
call fcn.100c7180
add esp, 8
mov esi, eax
cmp dword [esp + 0x14], 0
jne 0x100c2c31
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x2c]
cmp word [eax + 2], 0x18
jae 0x100c2c31
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.100aee40
add esp, 0x10
mov eax, esi
mov ecx, dword [esp + 0x118]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.101238be
add esp, 0x10c
ret