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

Disassembly:
sub esp, 0x3c
mov eax, dword [esp + 0x4c]
push ebx
push ebp
xor ebx, ebx
movzx ecx, byte [eax + 0x108bb2b8]
movzx eax, byte [eax + 0x108bb2a0]
shr eax, 1
dec eax
shr ecx, 1
dec ecx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x28], ecx
shl ecx, 3
lea edx, [eax*8]
mov dword [esp + 0x10], ebx
mov eax, dword [esp + 0x58]
add eax, ecx
mov dword [esp + 0x20], ebx
push esi
mov dword [esp + 0x38], eax
xor ecx, ecx
mov eax, dword [esp + 0x60]
xor esi, esi
push edi
xor edi, edi
mov dword [esp + 0x10], esi
add eax, edx
mov dword [esp + 0x14], edi
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x38], eax
mov dword [esp + 0x2c], ecx
cmp dword [esp + 0x50], ecx
jle 0x10230ac1
mov eax, dword [esp + 0x54]
mov edx, dword [esp + 0x58]
mov ebx, edx
sub ebx, eax
mov dword [esp + 0x44], ebx
lea ebp, [eax + 4]
nop word [eax + eax]
mov edx, dword [edx + ecx*8]
mov ecx, dword [esp + 0x34]
mov esi, dword [ebx + ebp]
mov edi, dword [esp + 0x30]
mov ebx, dword [ebp - 4]
sub edx, dword [esp + 0x38]
lea eax, [ecx*8]
mov ecx, dword [ebp]
sub ebx, eax
sub esi, dword [esp + 0x3c]
lea eax, [edi*8]
mov edi, dword [esp + 0x14]
sub ecx, eax
mov eax, ebx
mov dword [esp + 0x5c], edx
sub eax, edx
mov dword [esp + 0x40], esi
cdq
xor eax, edx
sub eax, edx
cmp eax, 0x100
jge 0x10230a9b
mov eax, ecx
sub eax, esi
cdq
xor eax, edx
sub eax, edx
cmp eax, 0x100
jge 0x10230a9b
lea eax, [ebx + 8]
mov edx, dword [esp + 0x5c]
imul eax, ebx
lea esi, [ecx + 4]
add edx, 4
lea eax, [eax*4 + 0x80]
sar eax, 4
add edi, eax
mov dword [esp + 0x14], edi
lea edi, [ebx + 4]
mov eax, edi
imul eax, esi
shl eax, 2
sar eax, 4
add dword [esp + 0x18], eax
lea eax, [ecx + 8]
imul eax, ecx
lea eax, [eax*4 + 0x80]
sar eax, 4
add dword [esp + 0x10], eax
mov eax, edx
imul eax, ebx
mov ebx, dword [esp + 0x5c]
imul edx, esi
mov esi, dword [esp + 0x40]
shl edx, 2
lea eax, [eax + ebx*4]
sar edx, 4
add dword [esp + 0x1c], edx
add eax, 0x20
shl eax, 2
lea edx, [esi + 4]
sar eax, 4
add dword [esp + 0x28], eax
mov eax, edx
imul eax, edi
mov edi, dword [esp + 0x14]
imul edx, ecx
shl eax, 2
sar eax, 4
add dword [esp + 0x24], eax
lea eax, [esi + 8]
lea eax, [edx + eax*4]
shl eax, 2
sar eax, 4
add dword [esp + 0x20], eax
mov ecx, dword [esp + 0x2c]
add ebp, 8
mov ebx, dword [esp + 0x44]
inc ecx
mov edx, dword [esp + 0x58]
mov dword [esp + 0x2c], ecx
cmp ecx, dword [esp + 0x50]
jl 0x102309a0
mov ebx, dword [esp + 0x18]
mov esi, dword [esp + 0x10]
mov eax, edi
imul esi
mov edi, eax
mov ecx, edx
mov eax, ebx
imul ebx
sub edi, eax
mov eax, edi
sbb ecx, edx
or eax, ecx
jne 0x10230ae4
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x3c
ret
test ecx, ecx
jg 0x10230af8
jl 0x10230aee
test edi, edi
jae 0x10230af8
mov dword [esp + 0x5c], 0xffffffff
jmp 0x10230b00
mov dword [esp + 0x5c], 1
mov eax, ecx
cdq
xor eax, edx
xor edi, edx
sub edi, edx
sbb eax, edx
mov ebx, eax
or eax, 0
je 0x10230b1a
bsr eax, ebx
add eax, 0x20
jmp 0x10230b1d
bsr eax, edi
xor ecx, ecx
movzx ebp, ax
movsx eax, bp
xor edx, edx
bts ecx, eax
mov dword [esp + 0x50], eax
cmp eax, 0x20
cmovae edx, ecx
xor ecx, edx
cmp eax, 0x40
cmovae edx, ecx
sub edi, ecx
mov dword [esp + 0x44], edi
sbb ebx, edx
mov dword [esp + 0x48], ebx
cmp bp, 8
jle 0x10230b83
mov ecx, eax
xor esi, esi
add ecx, 0xfffffff8
xor edx, edx
mov eax, ecx
bts esi, eax
cmp eax, 0x20
cmovae edx, esi
xor esi, edx
cmp eax, 0x40
cmovae edx, esi
shrd esi, edx, 1
sar edx, 1
add esi, edi
mov eax, esi
adc edx, ebx
call fcn.10511c50
mov esi, dword [esp + 0x10]
mov ecx, eax
jmp 0x10230ba4
movq xmm1, qword [esp + 0x44]
mov eax, 8
sub eax, dword [esp + 0x50]
movd xmm0, eax
psllq xmm1, xmm0
movq qword [esp + 0x44], xmm1
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x5c]
movsx ecx, word [ecx*2 + 0x108ba2c8]
cwde
imul ecx, eax
movzx eax, cx
mov dword [esp + 0x50], eax
lea eax, [ebp - 2]
movzx edx, ax
movzx edi, ax
test dx, dx
jns 0x10230bd2
mov cl, dl
neg cl
shl word [esp + 0x50], cl
xor ecx, ecx
mov eax, edi
mov edi, dword [esp + 0x18]
test dx, dx
cmovns ecx, eax
mov eax, esi
imul dword [esp + 0x28]
movsx ebp, cx
mov esi, eax
mov ecx, edx
mov eax, edi
imul dword [esp + 0x1c]
push ebp
push dword [esp + 0x54]
sub esi, eax
sbb ecx, edx
push ecx
push esi
call fcn.10230d30
mov ecx, dword [esp + 0x78]
mov dword [esp + 0x6c], eax
push ebp
push dword [esp + 0x64]
mov dword [ecx + 8], eax
mov eax, dword [esp + 0x2c]
imul dword [esp + 0x34]
mov esi, eax
mov ecx, edx
mov eax, edi
imul dword [esp + 0x40]
sub esi, eax
sbb ecx, edx
push ecx
push esi
call fcn.10230dd0
mov ebx, eax
mov eax, dword [esp + 0x88]
push ebp
push dword [esp + 0x74]
mov dword [eax + 0xc], ebx
mov eax, dword [esp + 0x38]
imul dword [esp + 0x4c]
mov esi, eax
mov ecx, edx
mov eax, edi
imul dword [esp + 0x48]
sub esi, eax
sbb ecx, edx
push ecx
push esi
call fcn.10230dd0
mov edi, eax
mov eax, dword [esp + 0x98]
push ebp
push dword [esp + 0x84]
mov dword [eax + 0x10], edi
mov eax, dword [esp + 0x4c]
imul dword [esp + 0x58]
mov esi, eax
mov ecx, edx
mov eax, dword [esp + 0x50]
imul dword [esp + 0x5c]
sub esi, eax
sbb ecx, edx
push ecx
push esi
call fcn.10230d30
mov ecx, dword [esp + 0xa8]
add esp, 0x40
mov edx, dword [esp + 0x30]
mov esi, dword [esp + 0x34]
mov ebp, dword [esp + 0x64]
mov dword [ecx + 0x14], eax
mov ecx, dword [esp + 0x6c]
lea edx, [edx + ecx*4]
mov ecx, dword [esp + 0x70]
lea esi, [esi + ecx*4]
mov ecx, dword [esp + 0x5c]
add ecx, 0xffff0000
imul ecx, esi
shl ebp, 0xd
sub ebp, ecx
imul ebx, edx
mov ecx, dword [esp + 0x60]
add eax, 0xffff0000
imul eax, edx
mov edx, 0x7fffff
imul edi, esi
shl ecx, 0xd
sub ebp, ebx
sub ecx, eax
sub ecx, edi
cmp ebp, 0xff800000
jge 0x10230cf9
mov ebp, 0xff800000
jmp 0x10230cfe
cmp ebp, edx
cmovg ebp, edx
mov eax, dword [esp + 0x68]
mov dword [eax], ebp
cmp ecx, 0xff800000
jge 0x10230d1e
pop edi
pop esi
mov ecx, 0xff800000
pop ebp
mov dword [eax + 4], ecx
xor eax, eax
pop ebx
add esp, 0x3c
ret
pop edi
cmp ecx, edx
pop esi
cmovg ecx, edx
pop ebp
mov dword [eax + 4], ecx
xor eax, eax
pop ebx
add esp, 0x3c
ret