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

Disassembly:
sub esp, 0x30
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x6c]
push ebx
push ebp
movsx edx, word [eax]
mov ebx, 1
mov ebp, dword [esp + 0x40]
movsx eax, word [eax + 2]
push esi
shl ebx, cl
push edi
sar ebx, 1
lea esi, [ebp*4]
add edx, ebx
mov dword [esp + 0x18], ebx
add eax, ebx
sar edx, cl
sar eax, cl
or edi, 0xffffffff
push esi
mov dword [esp + 0x34], edx
neg edx
mov dword [esp + 0x38], eax
neg eax
push 0
push dword [esp + 0x64]
mov dword [esp + 0x44], edx
mov dword [esp + 0x48], eax
mov dword [esp + 0x20], edi
call fcn.10513d40
push esi
push 0
push dword [esp + 0x74]
call fcn.10513d40
mov ecx, dword [esp + 0x7c]
lea esi, [ebp - 1]
mov ebx, dword [esp + 0x8c]
add esp, 0x18
movsx eax, word [ecx]
imul eax, eax, 0x145
add eax, 0x40
sar eax, 7
mov dword [esp + 0x28], eax
movsx eax, word [ecx + 2]
imul eax, eax, 0x145
add eax, 0x40
sar eax, 7
mov dword [esp + 0x2c], eax
test esi, esi
js 0x100c74f5
mov eax, dword [esp + 0x6c]
movsx eax, word [eax + esi*2]
test ebx, ebx
je 0x100c74b6
mov cl, byte [eax + ebx]
jmp 0x100c74b8
mov cl, 0x20
movzx edx, cl
mov ecx, dword [esp + 0x44]
imul edx, dword [ecx + eax*4]
neg eax
sbb eax, eax
and eax, 4
mov ecx, dword [esp + eax + 0x30]
mov edi, dword [esp + eax + 0x28]
shl ecx, 5
add ecx, edi
cmp edx, ecx
jge 0x100c74ee
mov eax, dword [esp + eax + 0x38]
shl eax, 5
sub eax, edi
cmp edx, eax
jle 0x100c74ee
dec ebp
sub esi, 1
jns 0x100c74a5
mov dword [esp + 0x48], ebp
or edi, 0xffffffff
xor eax, eax
mov dword [esp + 0x4c], 0xffffffff
mov dword [esp + 0x10], eax
test ebp, ebp
jle 0x100c7723
mov edx, 0x15
sub edx, dword [esp + 0x7c]
mov dword [esp + 0x1c], edx
nop dword [eax + eax]
mov ecx, dword [esp + 0x6c]
movsx edx, word [ecx + eax*2]
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x28], edx
lea eax, [edx*4]
mov esi, dword [eax + ecx]
mov dword [esp + 0x24], eax
mov eax, esi
sar eax, 0x1f
xor esi, eax
mov dword [esp + 0x20], eax
sub esi, eax
test ebx, ebx
je 0x100c7554
mov al, byte [edx + ebx]
jmp 0x100c7556
mov al, 0x20
movzx edi, al
mov eax, edx
neg eax
sbb eax, eax
and eax, 4
mov ecx, dword [esp + eax + 0x30]
mov eax, edi
imul eax, esi
shl ecx, 5
cmp eax, ecx
jl 0x100c766d
mov eax, dword [esp + 0x50]
mov ebp, edx
mov ecx, dword [esp + 0x7c]
neg ebp
sbb ebp, ebp
and ebp, 2
movsx edx, word [eax + ebp]
add edx, dword [esp + 0x18]
sar edx, cl
add edx, esi
cmp edx, 0xffff8000
jge 0x100c75a2
mov edx, 0xffff8000
jmp 0x100c75b0
cmp edx, 0x7fff
mov eax, 0x7fff
cmovg edx, eax
mov eax, edi
imul edx
mov edi, eax
mov ebx, edx
mov eax, dword [esp + 0x54]
push ebx
push edi
movsx eax, word [eax + ebp]
cdq
push edx
push eax
call fcn.10511b50
mov esi, eax
mov ecx, edx
mov eax, dword [esp + 0x58]
shrd esi, ecx, 0x10
sar ecx, 0x10
add esi, edi
movsx eax, word [eax + ebp]
cdq
adc ecx, ebx
push edx
push eax
push ecx
push esi
call fcn.10511b50
mov ecx, dword [esp + 0x1c]
call fcn.10511c50
mov edx, dword [esp + 0x20]
mov edi, eax
mov eax, dword [esp + 0x5c]
mov ecx, edi
mov esi, dword [esp + 0x24]
xor ecx, edx
sub ecx, edx
mov dword [esi + eax], ecx
mov eax, dword [esp + 0x78]
test eax, eax
je 0x100c761d
mov ecx, dword [esp + 0x28]
movzx ecx, byte [ecx + eax]
jmp 0x100c7622
mov ecx, 0x20
mov eax, dword [esp + 0x64]
mov ebx, dword [esp + 0x74]
movsx eax, word [eax + ebp]
imul eax, ecx
mov ecx, dword [esp + 0x7c]
mov ebp, dword [esp + 0x48]
add eax, 0x10
sar eax, 5
imul eax, edi
sar eax, cl
mov ecx, dword [esp + 0x60]
xor eax, edx
sub eax, edx
mov dword [esi + ecx], eax
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x4c]
test edi, edi
je 0x100c7675
cmp ecx, 0xffffffff
mov edi, eax
mov dword [esp + 0x14], edi
cmove ecx, eax
mov dword [esp + 0x4c], ecx
jmp 0x100c7679
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x4c]
mov edi, dword [esp + 0x14]
inc eax
mov dword [esp + 0x10], eax
cmp eax, ebp
jl 0x100c7520
test edi, edi
js 0x100c7723
cmp ecx, edi
jne 0x100c7723
mov eax, dword [esp + 0x6c]
movsx ecx, word [eax + edi*2]
mov eax, dword [esp + 0x5c]
lea ebp, [ecx*4]
mov eax, dword [eax + ebp]
cmp eax, 1
je 0x100c76b6
cmp eax, 0xffffffff
jne 0x100c7723
test ebx, ebx
je 0x100c76bf
mov al, byte [ecx + ebx]
jmp 0x100c76c1
mov al, 0x20
mov edx, dword [esp + 0x64]
movzx esi, al
mov eax, dword [esp + 0x44]
imul esi, dword [eax + ebp]
mov eax, ecx
neg eax
sbb eax, eax
and eax, 2
movsx eax, word [eax + edx]
imul edx, eax, 0x20d
add edx, 0x40
sar edx, 7
neg ecx
sbb ecx, ecx
and ecx, 4
mov eax, dword [esp + ecx + 0x30]
shl eax, 5
add eax, edx
cmp esi, eax
jge 0x100c7723
mov eax, dword [esp + ecx + 0x38]
shl eax, 5
sub eax, edx
cmp esi, eax
jle 0x100c7723
mov eax, dword [esp + 0x5c]
or edi, 0xffffffff
mov dword [eax + ebp], 0
mov eax, dword [esp + 0x60]
mov dword [eax + ebp], 0
mov eax, dword [esp + 0x68]
lea ecx, [edi + 1]
pop edi
pop esi
pop ebp
mov word [eax], cx
pop ebx
add esp, 0x30
ret