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

Disassembly:
sub esp, 0x30
mov eax, dword [esp + 0x40]
push ebx
push ebp
push esi
lea ecx, [eax*2 - 1]
mov dword [esp + 0x14], 0
mov eax, dword [esp + 0x48]
lea ebp, [ecx*8]
mov dword [esp + 0x28], ebp
xor ebx, ebx
push edi
mov dword [esp + 0x10], ebx
lea edx, [eax*2 - 1]
mov dword [esp + 0x14], ebx
mov eax, dword [esp + 0x54]
lea edi, [edx*8]
movsx esi, ax
shr eax, 0x10
add ebp, esi
mov dword [esp + 0x3c], esi
movsx esi, ax
mov eax, dword [esp + 0x60]
add esi, edi
mov dword [esp + 0x20], ebx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x24], ebx
lea eax, [ecx + eax*4]
mov dword [esp + 0x28], ebx
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x4c], edi
mov dword [esp + 0x50], ebp
mov dword [esp + 0x30], esi
lea eax, [edx + eax*4]
mov dword [esp + 0x60], eax
cmp dword [esp + 0x48], ebx
jle 0x100922c1
mov ebp, dword [esp + 0x44]
add ebp, 0xc
nop dword [eax]
mov ebx, dword [ebp - 4]
mov edi, dword [ebp]
sub ebx, esi
mov esi, dword [ebp - 0xc]
sub esi, dword [esp + 0x4c]
mov ecx, dword [ebp - 8]
mov eax, esi
sub edi, dword [esp + 0x50]
sub eax, ebx
sub ecx, dword [esp + 0x2c]
cdq
xor eax, edx
sub eax, edx
cmp eax, 0x100
jge 0x100922ab
mov eax, ecx
sub eax, edi
cdq
xor eax, edx
sub eax, edx
cmp eax, 0x100
jge 0x100922ab
mov edx, dword [esp + 0x10]
mov eax, esi
imul eax, esi
add edx, 4
sar eax, 2
add eax, dword [esp + 0x18]
lea eax, [eax + esi*2]
add eax, 8
mov dword [esp + 0x18], eax
mov eax, ecx
imul eax, esi
sar eax, 2
add eax, ecx
add eax, esi
add edx, eax
mov eax, ecx
imul eax, ecx
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x20]
add edx, 8
sar eax, 2
add eax, dword [esp + 0x14]
lea eax, [eax + ecx*2]
add eax, 8
mov dword [esp + 0x14], eax
mov eax, esi
imul eax, ebx
sar eax, 2
add eax, esi
add eax, ebx
add edx, eax
mov eax, ecx
imul eax, ebx
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x1c]
add edx, 4
sar eax, 2
add eax, ecx
add eax, ebx
add edx, eax
mov eax, esi
imul eax, edi
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x24]
add edx, 4
sar eax, 2
add eax, esi
add eax, edi
add edx, eax
mov eax, ecx
imul eax, edi
mov dword [esp + 0x24], edx
sar eax, 2
add eax, ecx
add eax, edi
mov edi, dword [esp + 0x28]
add edi, 8
add edi, eax
mov dword [esp + 0x28], edi
mov esi, dword [esp + 0x30]
add ebp, 0x10
sub dword [esp + 0x48], 1
jne 0x100921c0
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
imul esi
mov ebp, eax
mov ecx, edx
mov eax, ebx
imul ebx
sub ebp, eax
mov eax, ebp
mov dword [esp + 0x50], ebp
sbb ecx, edx
or eax, ecx
mov dword [esp + 0x48], ecx
jne 0x100922f2
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x30
ret
mov eax, ecx
mov dword [esp + 0x34], 0
cdq
mov edi, ebp
xor eax, edx
mov dword [esp + 0x4c], 0
xor edi, edx
mov ebx, 0x3f
sub edi, edx
sbb eax, edx
mov ebp, eax
or eax, 0
je 0x10092323
bsr eax, ebp
lea ecx, [ebx - 0x20]
jmp 0x10092328
bsr eax, edi
mov ecx, ebx
sub ecx, eax
xor edx, edx
sub ebx, ecx
xor ecx, ecx
mov eax, ebx
bts ecx, eax
cmp eax, 0x20
cmovae edx, ecx
xor ecx, edx
cmp eax, 0x40
cmovae edx, ecx
sub edi, ecx
mov dword [esp + 0x30], edi
sbb ebp, edx
mov dword [esp + 0x34], ebp
cmp ebx, 8
jle 0x10092380
xor esi, esi
lea eax, [ebx - 9]
xor edx, edx
bts esi, eax
cmp eax, 0x20
lea ecx, [ebx - 8]
cmovae edx, esi
xor esi, edx
cmp eax, 0x40
cmovae edx, esi
add esi, edi
mov eax, esi
adc edx, ebp
call fcn.100c4d60
mov esi, dword [esp + 0x14]
jmp 0x1009239f
movq xmm1, qword [esp + 0x30]
mov eax, 8
sub eax, ebx
movd xmm0, eax
psllq xmm1, xmm0
movq qword [esp + 0x30], xmm1
mov eax, dword [esp + 0x30]
cmp dword [esp + 0x48], 0
movzx edi, word [eax*2 + 0x10119a58]
jg 0x100923b9
jl 0x100923b7
cmp dword [esp + 0x50], 0
jae 0x100923b9
neg edi
add ebx, 0xfffffffe
mov dword [esp + 0x48], edi
jns 0x100923cc
mov ecx, ebx
neg ecx
shl edi, cl
mov dword [esp + 0x48], edi
xor ebp, ebp
mov eax, esi
test ebx, ebx
cmovns ebp, ebx
imul dword [esp + 0x20]
push ebp
mov esi, eax
mov ecx, edx
mov eax, dword [esp + 0x14]
imul dword [esp + 0x20]
push edi
sub esi, eax
sbb ecx, edx
push ecx
push esi
call fcn.10092840
mov ecx, dword [esp + 0x68]
mov ebx, eax
mov eax, dword [esp + 0x28]
imul dword [esp + 0x2c]
mov dword [ecx + 0xc], ebx
mov esi, eax
mov ecx, edx
mov eax, dword [esp + 0x20]
imul dword [esp + 0x30]
push ebp
sub esi, eax
push edi
sbb ecx, edx
push ecx
push esi
call fcn.100928d0
mov edi, eax
mov eax, dword [esp + 0x78]
push ebp
push dword [esp + 0x6c]
mov dword [eax + 0x10], edi
mov eax, dword [esp + 0x3c]
imul dword [esp + 0x4c]
mov esi, eax
mov ecx, edx
mov eax, dword [esp + 0x38]
imul dword [esp + 0x50]
sub esi, eax
sbb ecx, edx
push ecx
push esi
call fcn.100928d0
mov ecx, dword [esp + 0x88]
mov dword [esp + 0x80], eax
push ebp
push dword [esp + 0x7c]
mov dword [ecx + 0x14], eax
mov eax, dword [esp + 0x48]
imul dword [esp + 0x5c]
mov ecx, eax
mov esi, edx
mov eax, dword [esp + 0x50]
imul dword [esp + 0x60]
sub eax, ecx
sbb edx, esi
push edx
push eax
call fcn.10092840
mov esi, dword [esp + 0xa0]
lea ecx, [ebx - 0x10000]
movsx edx, word [esp + 0x96]
add esp, 0x40
mov ebp, dword [esp + 0x58]
imul ecx, esi
shl edx, 0xd
mov dword [ebp + 0x18], eax
sub edx, ecx
mov ecx, dword [esp + 0x38]
imul edi, ecx
sub edx, edi
mov edi, 0x7fffff
cmp edx, 0xff800000
jge 0x100924c2
mov edx, 0xff800000
jmp 0x100924c7
cmp edx, edi
cmovg edx, edi
add eax, 0xffff0000
mov dword [ebp + 4], edx
imul eax, ecx
mov ecx, dword [esp + 0x3c]
shl ecx, 0xd
sub ecx, eax
mov eax, dword [esp + 0x50]
imul eax, esi
sub ecx, eax
cmp ecx, 0xff800000
jge 0x100924fe
pop edi
mov ecx, 0xff800000
xor eax, eax
pop esi
mov dword [ebp + 8], ecx
pop ebp
pop ebx
add esp, 0x30
ret
cmp ecx, edi
cmovg ecx, edi
xor eax, eax
pop edi
pop esi
mov dword [ebp + 8], ecx
pop ebp
pop ebx
add esp, 0x30
ret