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

Disassembly:
sub esp, 0x10c
mov eax, dword [0x102d94c0]
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 0x100ec6c3
test bl, 8
jne 0x100ec6c3
mov edx, dword [edi + 4]
test dword [edx + 4], 0x7fff0000
jne 0x100ec6c3
test dword [edx + 8], 0x8000
jne 0x100ec6c3
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 0x100ec3b7
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 0x100ec3a9
movsx eax, word [esp + 0x112]
mov dword [edi + 0x64], eax
movsx eax, word [esp + 0x114]
jmp 0x100ec3b4
movsx eax, word [esp + 0x10e]
mov dword [edi + 0x64], ecx
mov dword [edi + 0x68], eax
mov eax, dword [edi + 4]
cmp dl, 0x9d
jne 0x100ec539
test byte [eax + 8], 1
mov dword [esp + 0x14], eax
jne 0x100ec6c3
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 0x100ec54c
lea ecx, [esp + 0x2c]
push ecx
lea ecx, [esp + 0x20]
push ecx
push ebp
push eax
call fcn.100eb8c0
lea eax, [esp + 0x28]
push eax
lea eax, [esp + 0x3c]
push eax
push 0
push ebp
push dword [esp + 0x34]
call fcn.100eb8f0
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 0x100ec91e
mov dword [esp + 0x10], eax
mov eax, dword [eax + 8]
test edx, edx
je 0x100ec553
test al, 1
jne 0x100ec6c3
mov eax, edx
jmp 0x100ec91e
test eax, 0x20001
je 0x100ec6bc
push 1
push ebx
push edi
lea eax, [esp + 0x3c]
push esi
push eax
call fcn.100f4f20
push 1
push 0
lea eax, [esp + 0x4c]
push ebp
push eax
call fcn.100f3020
lea eax, [esp + 0x54]
push eax
call fcn.100f4f00
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 0x100ec640
cmp word [esp + 0x50], 0
jle 0x100ec640
test bl, 0x10
je 0x100ec5d0
mov eax, dword [esp + 0x54]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0xdc]
jmp 0x100ec5dc
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 0x100ec67e
mov eax, dword [edi + 0x38]
test eax, eax
je 0x100ec67e
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 0x100ec6bc
mov eax, dword [edi + 0x3c]
test eax, eax
je 0x100ec6bc
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 0x100ec91e
test ebx, 0x4000
je 0x100ec6d5
mov esi, 6
jmp 0x100ec91c
mov eax, ebx
and eax, 1
mov dword [esp + 0x14], eax
jne 0x100ec6f0
cmp byte [esi + 0x70], 0
jne 0x100ec6f0
mov esi, 0x24
jmp 0x100ec91c
test ebx, 0x100000
je 0x100ec7c0
mov eax, dword [edi + 4]
cmp dword [eax + 0x36c], 0
je 0x100ec7c0
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 0x100ec7c0
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.100d8640
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.100d8640
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 0x100ec91e
test ebx, 0x800000
jne 0x100ec6cb
push 0
push ebx
push edi
lea eax, [esp + 0x3c]
push esi
push eax
call fcn.100f4f20
mov esi, eax
add esp, 0x14
test esi, esi
jne 0x100ec91c
mov ecx, ebx
and ecx, 0x110
cmp ecx, 0x100
jne 0x100ec812
mov eax, dword [esp + 0x104]
test eax, eax
je 0x100ec812
movzx eax, byte [eax + ebp]
shl eax, 6
mov dword [edi + 0x28], eax
jmp 0x100ec901
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.100f3020
mov esi, eax
add esp, 0x10
test esi, esi
jne 0x100ec8e5
cmp dword [edi + 0x48], 0x636f6d70
jne 0x100ec867
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 0x100ec898
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 0x100ec898
push 0
neg eax
push eax
push ecx
call fcn.100d96f0
add esp, 0xc
test bl, 2
jne case.0x100ec8b8.1
mov eax, dword [esp + 0xcc]
cmp byte [eax + 0x155], 0
je case.0x100ec8b8.2
mov eax, dword [eax + 0x158]
cmp eax, 5
ja case.0x100ec8b8.2
jmp dword [eax*4 + 0x100ec938]
or dword [edi + 0x7c], 0x20
jmp case.0x100ec8b8.1
or dword [edi + 0x7c], 0x30
jmp case.0x100ec8b8.1
or dword [edi + 0x7c], 0x10
jmp case.0x100ec8b8.1
or dword [edi + 0x7c], 8
lea eax, [esp + 0x30]
push ebp
push eax
call fcn.100f1220
add esp, 8
mov esi, eax
cmp dword [esp + 0x14], 0
jne 0x100ec901
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x2c]
cmp word [eax + 2], 0x18
jae 0x100ec901
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.100d7790
add esp, 0x10
mov eax, esi
mov ecx, dword [esp + 0x118]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.101f469d
add esp, 0x10c
ret