Function at 0x101f1bd0
Capabilities:
Access peb ldr_data
Get number of processors
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
push 0xffffffffffffffff
push 0x1029cee0
mov eax, dword fs:[0]
push eax
sub esp, 0x1a8
mov eax, dword [0x103fb8f8]
xor eax, esp
mov dword [esp + 0x170], eax
push ebx
push esi
push edi
mov eax, dword [0x103fb8f8]
xor eax, esp
push eax
lea eax, [esp + 0x1b8]
mov dword fs:[0], eax
mov esi, ecx
mov dword [esp + 0x2c], esi
mov eax, dword [ebp + 0xc]
mov ebx, dword [ebp + 8]
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], eax
call dword [0x102ad49c]
mov ecx, dword [esi + 0xe0]
sub ecx, dword [ebp + 0x10]
mov edx, dword [esi + 0xe4]
sub edx, dword [ebp + 0x14]
mov dword [esp + 0x74], eax
lea eax, [esp + 0x94]
mov dword [esp + 0x94], ecx
mov ecx, ebx
push eax
mov dword [esp + 0x9c], edx
call dword [0x102abac4]
movsd xmm0, qword [esi + 0x40]
sub esp, 0x10
unpcklpd xmm0, xmm0
mov ecx, ebx
movups xmmword [esp], xmm0
call dword [0x102abacc]
mov edx, dword [esp + 0x34]
mov dword [esp + 0x70], 0
mov ecx, dword [edx]
mov eax, dword [edx + 8]
sub eax, ecx
mov edi, dword [edx + 4]
inc eax
lea ebx, [ecx - 1]
mov ecx, dword [esp + 0x2c]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
divsd xmm0, qword [esi + 0x40]
cvttsd2si eax, xmm0
add ebx, eax
mov eax, dword [edx + 0xc]
sub eax, edi
mov dword [edx + 8], ebx
inc eax
mov dword [esp + 0x5c], ebx
mov ebx, dword [esp + 0x34]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
divsd xmm0, qword [esi + 0x40]
lea esi, [edi - 1]
cvttsd2si eax, xmm0
add esi, eax
mov eax, dword [esp + 0x98]
neg eax
mov dword [edx + 0xc], esi
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mov eax, dword [esp + 0x94]
neg eax
divsd xmm0, qword [ecx + 0x40]
cvttsd2si edx, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
lea eax, [edx + edi]
mov edi, ebx
divsd xmm0, qword [ecx + 0x40]
mov dword [edi + 4], eax
mov eax, dword [esp + 0x5c]
cvttsd2si ecx, xmm0
add dword [ebx], ecx
add eax, ecx
mov dword [edi + 8], eax
lea eax, [edx + esi]
mov dword [edi + 0xc], eax
mov edi, dword [esp + 0x2c]
lea eax, [edi + 0x160]
push eax
mov dword [esp + 0xa0], eax
lea ecx, [edi + 0x358]
lea eax, [esp + 0x60]
push eax
call fcn.101eecd0
mov eax, dword [esp + 0x5c]
cmp eax, dword [edi + 0x358]
je 0x101f1d53
mov eax, dword [eax + 0xc]
mov dword [esp + 0x70], eax
lea ecx, [esp + 0x38]
call dword [0x102abd24]
movsd xmm0, qword [0x102b9708]
lea eax, [edi + 0x2e0]
divsd xmm0, qword [edi + 0x40]
push eax
lea ecx, [esp + 0x3c]
mov dword [esp + 0x1c4], 0
movsd qword [esp + 0xc8], xmm0
call dword [0x102abbe0]
movsd xmm0, qword [esp + 0xc4]
lea ecx, [esp + 0x38]
sub esp, 8
movsd qword [esp], xmm0
call dword [0x102abad0]
mov eax, dword [edi + 0xfc]
mov dword [esp + 0xa0], eax
mov ebx, dword [eax]
mov dword [esp + 0x44], ebx
cmp ebx, eax
je 0x101f2c23
mov esi, 1
lea ebx, [ebx]
mov ecx, dword [ebx + 0x20]
mov eax, dword [ebx + 0x1c]
mov byte [esp + 0x60], 0
cmp eax, ecx
je 0x101f1e07
mov edx, dword [edi + 0xe8]
mov ebx, dword [esp + 0x60]
lea esp, [esp]
cmp dword [eax], edx
movzx ebx, bl
cmove ebx, esi
add eax, 0x1c
cmp eax, ecx
jne 0x101f1df0
mov dword [esp + 0x60], ebx
mov ebx, dword [esp + 0x44]
movsd xmm2, qword [edi + 0xc0]
movd xmm0, dword [ebx + 0x7c]
movapd xmm1, xmm2
mulsd xmm1, qword [0x102b8d38]
cvtdq2pd xmm0, xmm0
subsd xmm0, xmm1
cvttsd2si esi, xmm0
movd xmm0, dword [ebx + 0x78]
cvtdq2pd xmm0, xmm0
subsd xmm0, xmm1
cvttsd2si edx, xmm0
movsd xmm0, qword [ebx + 0x70]
addsd xmm0, xmm2
cvttsd2si ecx, xmm0
movsd xmm0, qword [ebx + 0x68]
addsd xmm0, xmm2
mov dword [esp + 0x124], ecx
cvttsd2si eax, xmm0
mov dword [esp + 0x120], eax
dec eax
add eax, edx
mov dword [esp + 0x128], eax
lea eax, [ecx - 1]
mov ecx, dword [esp + 0x34]
add eax, esi
mov dword [esp + 0x12c], eax
lea eax, [esp + 0x120]
push eax
call dword [0x102ab374]
test al, al
je 0x101f2b29
mov eax, dword [ebx + 0x34]
cmp eax, dword [esp + 0x70]
push eax
mov eax, dword [esp + 0x78]
sete byte [esp + 0x2f]
mov eax, dword [eax + 0xa0]
call eax
movsd xmm0, qword [edi + 0x40]
add esp, 4
comisd xmm0, xmmword [edi + 0x60]
mov dword [esp + 0x40], eax
jbe 0x101f28a9
push 0
push 0
push 0
push 0
lea ecx, [esp + 0x150]
call dword [0x102abd30]
mov esi, dword [esp + 0x30]
lea eax, [esp + 0x140]
push eax
mov ecx, esi
call dword [0x102aba98]
cmp byte [esp + 0x2b], 0
je 0x101f1f31
push 1
lea eax, [edi + 0x300]
push eax
mov eax, dword [0x102aba7c]
lea ecx, [esp + 0x88]
call eax
lea eax, [esp + 0x80]
mov byte [esp + 0x1c0], 1
push eax
mov eax, dword [0x102abb7c]
mov ecx, esi
call eax
lea ecx, [esp + 0x80]
jmp 0x101f1ff6
cmp byte [ebx + 0x40], 0
je 0x101f1f73
push 1
lea eax, [edi + 0x1f0]
push eax
mov eax, dword [0x102aba7c]
lea ecx, [esp + 0x90]
call eax
lea eax, [esp + 0x88]
mov byte [esp + 0x1c0], 2
push eax
mov eax, dword [0x102abb7c]
mov ecx, esi
call eax
lea ecx, [esp + 0x88]
jmp 0x101f1ff6
cmp byte [ebx + 0x41], 0
je 0x101f1fb2
push 1
lea eax, [edi + 0x200]
push eax
mov eax, dword [0x102aba7c]
lea ecx, [esp + 0x98]
call eax
lea eax, [esp + 0x90]
mov byte [esp + 0x1c0], 3
push eax
mov eax, dword [0x102abb7c]
mov ecx, esi
call eax
lea ecx, [esp + 0x90]
jmp 0x101f1ff6
push 0x64
push 0
push 0
push 0
lea ecx, [esp + 0x180]
call dword [0x102abd30]
push 1
lea eax, [esp + 0x174]
push eax
mov eax, dword [0x102aba7c]
lea ecx, [esp + 0x74]
call eax
lea eax, [esp + 0x6c]
mov byte [esp + 0x1c0], 4
push eax
mov eax, dword [0x102abb7c]
mov ecx, esi
call eax
lea ecx, [esp + 0x6c]
mov eax, dword [0x102aba80]
mov byte [esp + 0x1c0], 0
call eax
movsd xmm2, qword [edi + 0xc0]
movsd xmm3, qword [0x102dbbb0]
movapd xmm1, xmm2
mulsd xmm1, qword [0x102b8d38]
push 1
movd xmm0, dword [ebx + 0x7c]
cvtdq2pd xmm0, xmm0
addsd xmm1, xmm3
subsd xmm0, xmm1
cvttsd2si esi, xmm0
movd xmm0, dword [ebx + 0x78]
cvtdq2pd xmm0, xmm0
subsd xmm0, xmm1
cvttsd2si edx, xmm0
movsd xmm0, qword [ebx + 0x70]
addsd xmm0, xmm2
addsd xmm0, xmm3
cvttsd2si ecx, xmm0
movsd xmm0, qword [ebx + 0x68]
addsd xmm0, xmm2
mov dword [esp + 0x108], ecx
addsd xmm0, xmm3
cvttsd2si eax, xmm0
mov dword [esp + 0x104], eax
dec eax
add eax, edx
mov dword [esp + 0x10c], eax
lea eax, [ecx - 1]
add eax, esi
mov esi, dword [esp + 0x34]
mov dword [esp + 0x110], eax
mov ecx, esi
lea eax, [esp + 0x104]
push eax
call dword [0x102abcf8]
lea eax, [edi + 0x2e0]
push eax
lea ecx, [esp + 0x3c]
call dword [0x102abbe0]
lea eax, [esp + 0x38]
mov ecx, esi
push eax
call dword [0x102abd00]
push 1
lea eax, [edi + 0x2f0]
push eax
lea ecx, [esp + 0x94]
call dword [0x102aba7c]
lea eax, [esp + 0x8c]
mov byte [esp + 0x1c0], 5
push eax
mov ecx, esi
call dword [0x102abb7c]
lea ecx, [esp + 0x8c]
mov byte [esp + 0x1c0], 0
call dword [0x102aba80]
movsd xmm2, qword [edi + 0xc0]
movd xmm0, dword [ebx + 0x7c]
movapd xmm1, xmm2
mulsd xmm1, qword [0x102b8d38]
cvtdq2pd xmm0, xmm0
addsd xmm1, qword [0x102dbbb0]
subsd xmm0, xmm1
cvttsd2si esi, xmm0
movd xmm0, dword [ebx + 0x78]
cvtdq2pd xmm0, xmm0
subsd xmm0, xmm1
cvttsd2si edx, xmm0
movsd xmm0, qword [ebx + 0x70]
addsd xmm0, xmm2
dec edx
cvttsd2si ecx, xmm0
movsd xmm0, qword [ebx + 0x68]
addsd xmm0, xmm2
mov dword [esp + 0x114], ecx
cvttsd2si eax, xmm0
mov dword [esp + 0x110], eax
add eax, edx
mov dword [esp + 0x118], eax
lea eax, [ecx - 1]
mov ecx, dword [esp + 0x30]
add eax, esi
mov dword [esp + 0x11c], eax
lea eax, [esp + 0x110]
push 1
push eax
call dword [0x102abcf8]
mov edx, dword [esp + 0x2c]
cmp dword [edx + 0xe8], 0
je 0x101f2548
mov esi, dword [edx + 0xc8]
mov eax, 0x2aaaaaab
mov ecx, dword [ebx + 0x14]
sub ecx, dword [ebx + 0x10]
imul ecx
mov edi, dword [ebx + 0x20]
sar edx, 1
mov eax, edx
mov dword [esp + 0x3c], esi
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x2c]
imul eax, esi
mov esi, dword [ebx + 0x1c]
movsd xmm0, qword [edx + 0xc0]
mulsd xmm0, qword [0x102b8d38]
movd xmm1, eax
addsd xmm0, qword [ebx + 0x70]
cvtdq2pd xmm1, xmm1
addsd xmm1, xmm0
cvttsd2si eax, xmm1
mov dword [esp + 0x4c], eax
cmp esi, edi
je 0x101f2548
mov ecx, dword [esi + 8]
mov eax, 0x2aaaaaab
sub ecx, dword [esi + 4]
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x34]
imul eax, dword [esp + 0x3c]
mov ecx, dword [edx + 4]
sub ecx, eax
mov eax, dword [esp + 0x4c]
cmp eax, ecx
jle 0x101f250c
cmp eax, dword [edx + 0xc]
jge 0x101f250c
mov ecx, dword [esp + 0x2c]
mov eax, dword [esi]
push eax
cmp eax, dword [ecx + 0xe8]
mov eax, dword [esp + 0x78]
sete byte [esp + 0x2f]
mov eax, dword [eax + 0xa0]
call eax
add esp, 4
cmp byte [esp + 0x2b], 0
je 0x101f23a2
mov ecx, dword [esi + 8]
movd xmm1, dword [ebx + 0x78]
sub ecx, dword [esi + 4]
test eax, eax
cvtdq2pd xmm1, xmm1
mov eax, 0x2aaaaaab
je 0x101f2313
imul ecx
mov ecx, dword [esp + 0x2c]
sar edx, 1
mov eax, edx
shr eax, 0x1f
movsd xmm2, qword [ecx + 0xc0]
add eax, edx
mov edx, dword [ecx + 0xc8]
movapd xmm0, xmm2
mulsd xmm0, qword [0x102b8d38]
imul edx, eax
addsd xmm0, qword [0x102dbbc0]
subsd xmm1, xmm0
movsd xmm0, qword [ebx + 0x68]
mov ebx, dword [esp + 0x4c]
addsd xmm0, xmm2
mov dword [esp + 0x134], ebx
cvttsd2si ecx, xmm1
addsd xmm0, qword [0x102dbba8]
dec ecx
cvttsd2si eax, xmm0
mov dword [esp + 0x130], eax
add eax, ecx
mov dword [esp + 0x138], eax
mov eax, ebx
dec eax
add eax, edx
mov dword [esp + 0x13c], eax
mov eax, dword [esp + 0x2c]
add eax, 0x1b0
push eax
lea eax, [esp + 0x134]
jmp 0x101f24fd
imul ecx
mov ecx, dword [esp + 0x2c]
sar edx, 1
mov eax, edx
shr eax, 0x1f
movsd xmm2, qword [ecx + 0xc0]
add eax, edx
mov edx, dword [ecx + 0xc8]
movapd xmm0, xmm2
mulsd xmm0, qword [0x102b8d38]
imul edx, eax
addsd xmm0, qword [0x102dbbc0]
subsd xmm1, xmm0
movsd xmm0, qword [ebx + 0x68]
mov ebx, dword [esp + 0x4c]
addsd xmm0, xmm2
mov dword [esp + 0xd4], ebx
cvttsd2si ecx, xmm1
addsd xmm0, qword [0x102dbba8]
dec ecx
cvttsd2si eax, xmm0
mov dword [esp + 0xd0], eax
add eax, ecx
mov dword [esp + 0xd8], eax
mov eax, ebx
dec eax
add eax, edx
mov dword [esp + 0xdc], eax
mov eax, dword [esp + 0x2c]
add eax, 0x190
push eax
lea eax, [esp + 0xd4]
jmp 0x101f24fd
test eax, eax
je 0x101f250c
shr eax, 1
mov ecx, 1
je 0x101f23b8
inc ecx
shr eax, 1
jne 0x101f23b3
imul ecx, ecx
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x2c]
add eax, 0x1a0
mov ecx, eax
mov dword [esp + 0x3c], eax
call dword [0x102abd34]
cmp eax, 0xa0
jle 0x101f23ec
mov eax, dword [esp + 0x54]
neg eax
mov dword [esp + 0x54], eax
mov ecx, dword [esp + 0x3c]
call dword [0x102abd34]
add eax, dword [esp + 0x54]
lea ecx, [esp + 0x48]
cmp eax, 0x100
mov dword [esp + 0x54], eax
lea edx, [esp + 0x54]
mov dword [esp + 0x48], 0x100
cmovge edx, ecx
mov dword [esp + 0x40], 0
mov ecx, dword [esp + 0x3c]
lea eax, [esp + 0x40]
cmp dword [edx], 0
cmovg eax, edx
mov eax, dword [eax]
mov dword [esp + 0x40], eax
call dword [0x102abd38]
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x48], eax
call dword [0x102abd3c]
push 0xff
push dword [esp + 0x44]
lea ecx, [esp + 0x168]
push dword [esp + 0x50]
push eax
call dword [0x102abd30]
mov ecx, dword [esi + 8]
mov eax, 0x2aaaaaab
sub ecx, dword [esi + 4]
movd xmm1, dword [ebx + 0x78]
imul ecx
cvtdq2pd xmm1, xmm1
mov ecx, dword [esp + 0x2c]
sar edx, 1
mov eax, edx
shr eax, 0x1f
movsd xmm2, qword [ecx + 0xc0]
add eax, edx
mov edx, dword [ecx + 0xc8]
movapd xmm0, xmm2
mulsd xmm0, qword [0x102b8d38]
imul edx, eax
addsd xmm0, qword [0x102dbbc0]
subsd xmm1, xmm0
movsd xmm0, qword [ebx + 0x68]
mov ebx, dword [esp + 0x4c]
addsd xmm0, xmm2
mov dword [esp + 0xf4], ebx
cvttsd2si ecx, xmm1
addsd xmm0, qword [0x102dbba8]
dec ecx
cvttsd2si eax, xmm0
mov dword [esp + 0xf0], eax
add eax, ecx
mov dword [esp + 0xf8], eax
mov eax, ebx
dec eax
add eax, edx
mov dword [esp + 0xfc], eax
lea eax, [esp + 0x160]
push eax
lea eax, [esp + 0xf4]
mov ecx, dword [esp + 0x34]
push eax
call dword [0x102abcf0]
mov ebx, dword [esp + 0x44]
mov eax, dword [esp + 0x2c]
mov ecx, dword [esi + 8]
sub ecx, dword [esi + 4]
add esi, 0x1c
mov eax, dword [eax + 0xc8]
mov dword [esp + 0x3c], eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
imul eax, dword [esp + 0x3c]
add dword [esp + 0x4c], eax
cmp esi, edi
jne 0x101f2203
mov edx, dword [esp + 0x2c]
movsd xmm0, qword [edx + 0xc0]
mulsd xmm0, qword [0x102b8d38]
mov edi, dword [ebx + 0x14]
movsd xmm4, qword [ebx + 0x68]
movsd xmm3, qword [ebx + 0x70]
mov esi, dword [ebx + 0x10]
addsd xmm4, xmm0
addsd xmm3, xmm0
movsd qword [esp + 0x4c], xmm4
movsd qword [esp + 0x54], xmm3
cmp esi, edi
je 0x101f2610
mov eax, dword [esp + 0x34]
jmp 0x101f2590
mov eax, dword [eax + 4]
mov ecx, dword [edx + 0xc8]
sub eax, ecx
movd xmm0, eax
mov eax, dword [esp + 0x34]
cvtdq2pd xmm0, xmm0
comisd xmm3, xmm0
jbe 0x101f25f3
movd xmm0, dword [eax + 0xc]
cvtdq2pd xmm0, xmm0
comisd xmm0, xmm3
jbe 0x101f25f3
push dword [edx + 0x138]
cvttsd2si eax, xmm3
push esi
push 0
push ecx
push dword [ebx + 0x78]
push eax
cvttsd2si eax, xmm4
push eax
push dword [esp + 0x4c]
call fcn.1012abb0
movsd xmm3, qword [esp + 0x74]
add esp, 0x20
movsd xmm4, qword [esp + 0x4c]
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x34]
movd xmm0, dword [edx + 0xc8]
add esi, 0xc
cvtdq2pd xmm0, xmm0
addsd xmm3, xmm0
movsd qword [esp + 0x54], xmm3
cmp esi, edi
jne 0x101f2590
mov eax, dword [ebx + 0x20]
mov edi, dword [ebx + 0x1c]
mov dword [esp + 0x3c], eax
cmp edi, eax
je 0x101f2b29
mov eax, dword [edi + 8]
mov esi, dword [edi + 4]
mov dword [esp + 0x48], eax
cmp esi, eax
je 0x101f2891
mov ecx, dword [esp + 0x34]
jmp 0x101f2640
mov ecx, dword [ecx + 4]
sub ecx, dword [edx + 0xc8]
mov ebx, dword [esp + 0x44]
movd xmm0, ecx
mov ecx, dword [esp + 0x34]
cvtdq2pd xmm0, xmm0
comisd xmm3, xmm0
jbe 0x101f286a
movd xmm0, dword [ecx + 0xc]
cvtdq2pd xmm0, xmm0
comisd xmm0, xmm3
jbe 0x101f286a
movsd xmm1, qword [edx + 0xc0]
xorps xmm0, xmm0
comisd xmm1, xmm0
jb 0x101f2699
movsd xmm0, qword [0x102b9700]
addsd xmm1, xmm0
cvttsd2si ecx, xmm1
jmp 0x101f26c6
movaps xmm0, xmm1
subsd xmm0, qword [0x102b9708]
cvttsd2si eax, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
subsd xmm1, xmm0
movsd xmm0, qword [0x102b9700]
addsd xmm1, xmm0
cvttsd2si ecx, xmm1
add ecx, eax
mov eax, ecx
and eax, 0x80000001
jns 0x101f26d4
dec eax
or eax, 0xfffffffe
inc eax
je 0x101f26d7
inc ecx
mov eax, dword [edx + 0xc8]
sub eax, ecx
push dword [edi]
movd xmm2, eax
cvtdq2pd xmm2, xmm2
mulsd xmm2, xmm0
movapd xmm0, xmm4
addsd xmm2, xmm3
movd xmm3, ecx
cvtdq2pd xmm3, xmm3
movsd qword [esp + 0xb0], xmm2
unpcklpd xmm3, xmm3
movaps xmm1, xmm3
divsd xmm1, qword [0x102dbba8]
movups xmmword [esp + 0xb8], xmm3
subsd xmm0, xmm1
movsd qword [esp + 0xa8], xmm0
call dword [0x102ad474]
push dword [edi]
test eax, eax
setne byte [esp + 0x33]
call dword [0x102ad424]
mov ecx, dword [edi]
mov dl, al
mov eax, dword [esp + 0xa4]
add esp, 8
cmp ecx, dword [eax]
mov al, byte [esp + 0x2b]
sete cl
test al, al
jne 0x101f2774
test dl, dl
jne 0x101f2774
test cl, cl
je 0x101f280d
mov eax, dword [esp + 0x2c]
add eax, 0x2a0
jmp 0x101f27fa
test cl, cl
je 0x101f27e6
movsd xmm0, qword [esp + 0xb4]
mov eax, dword [esp + 0x2c]
mulsd xmm0, qword [0x102b9700]
add eax, 0x2a0
mov ecx, dword [esp + 0x30]
push eax
lea eax, [esp + 0xa8]
push eax
movsd qword [esp + 0xbc], xmm0
call dword [0x102abab8]
movsd xmm0, qword [esp + 0xb4]
xorps xmm1, xmm1
addsd xmm0, qword [esp + 0xa4]
mov al, byte [esp + 0x2b]
movsd qword [esp + 0xa4], xmm0
movsd xmm0, qword [esp + 0xac]
addsd xmm0, xmm1
movsd qword [esp + 0xac], xmm0
test al, al
mov eax, dword [esp + 0x2c]
je 0x101f27f5
add eax, 0x2b0
jmp 0x101f27fa
add eax, 0x2c0
mov ecx, dword [esp + 0x30]
push eax
lea eax, [esp + 0xa8]
push eax
call dword [0x102abab8]
movd xmm0, dword [ebx + 0x78]
mov eax, dword [esp + 0x2c]
cvtdq2pd xmm0, xmm0
push dword [eax + 0x138]
movsd xmm1, qword [eax + 0xc0]
push esi
subsd xmm0, xmm1
addsd xmm1, qword [esp + 0x54]
push 0
push dword [eax + 0xc8]
cvttsd2si eax, xmm0
push eax
cvttsd2si eax, qword [esp + 0x68]
push eax
cvttsd2si eax, xmm1
push eax
push dword [esp + 0x4c]
call fcn.1012abb0
movsd xmm3, qword [esp + 0x74]
add esp, 0x20
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x34]
movd xmm0, dword [edx + 0xc8]
add esi, 0xc
movsd xmm4, qword [esp + 0x4c]
cvtdq2pd xmm0, xmm0
addsd xmm3, xmm0
movsd qword [esp + 0x54], xmm3
cmp esi, eax
jne 0x101f2640
movsd xmm4, qword [esp + 0x4c]
add edi, 0x1c
cmp edi, dword [esp + 0x3c]
jne 0x101f2622
jmp 0x101f2b29
lea eax, [edi + 0x2e0]
push eax
lea ecx, [esp + 0x3c]
call dword [0x102abbe0]
mov esi, dword [esp + 0x30]
lea eax, [esp + 0x38]
push eax
mov ecx, esi
call dword [0x102abd00]
cmp byte [esp + 0x2b], 0
je 0x101f290c
push 1
lea eax, [edi + 0x300]
push eax
lea ecx, [esp + 0x8c]
call dword [0x102aba7c]
lea eax, [esp + 0x84]
mov byte [esp + 0x1c0], 6
push eax
mov ecx, esi
call dword [0x102abb7c]
lea ecx, [esp + 0x84]
jmp 0x101f2a8c
mov ecx, dword [esp + 0x40]
test ecx, ecx
je 0x101f29f9
shr ecx, 1
mov eax, 1
je 0x101f2926
inc eax
shr ecx, 1
jne 0x101f2921
imul eax, eax
add edi, 0x1a0
mov ecx, edi
mov dword [esp + 0x3c], edi
cdq
sub eax, edx
mov esi, eax
sar esi, 1
call dword [0x102abd34]
cmp eax, 0xa0
jle 0x101f294b
neg esi
mov ecx, edi
call dword [0x102abd34]
add eax, esi
mov dword [esp + 0x48], 0x100
cmp eax, 0x100
mov dword [esp + 0x40], eax
lea ecx, [esp + 0x48]
mov dword [esp + 0x54], 0
lea edx, [esp + 0x40]
cmovge edx, ecx
lea eax, [esp + 0x54]
mov ecx, dword [esp + 0x3c]
cmp dword [edx], 0
cmovg eax, edx
mov edi, dword [eax]
call dword [0x102abd38]
mov ecx, dword [esp + 0x3c]
mov esi, eax
call dword [0x102abd3c]
push 0xff
push edi
push esi
push eax
lea ecx, [esp + 0x160]
call dword [0x102abd30]
push 1
lea eax, [esp + 0x154]
push eax
lea ecx, [esp + 0x84]
call dword [0x102aba7c]
mov ecx, dword [esp + 0x30]
lea eax, [esp + 0x7c]
push eax
mov byte [esp + 0x1c4], 7
call dword [0x102abb7c]
lea ecx, [esp + 0x7c]
mov byte [esp + 0x1c0], 0
call dword [0x102aba80]
mov edi, dword [esp + 0x2c]
jmp 0x101f2a9a
cmp byte [ebx + 0x40], 0
push 1
je 0x101f2a2d
lea eax, [edi + 0x1f0]
push eax
lea ecx, [esp + 0x70]
call dword [0x102aba7c]
lea eax, [esp + 0x68]
mov byte [esp + 0x1c0], 8
push eax
mov ecx, esi
call dword [0x102abb7c]
lea ecx, [esp + 0x68]
jmp 0x101f2a8c
cmp byte [ebx + 0x41], 0
je 0x101f2a5f
lea eax, [edi + 0x200]
push eax
lea ecx, [esp + 0x6c]
call dword [0x102aba7c]
lea eax, [esp + 0x64]
mov byte [esp + 0x1c0], 9
push eax
mov ecx, esi
call dword [0x102abb7c]
lea ecx, [esp + 0x64]
jmp 0x101f2a8c
lea eax, [edi + 0x2f0]
push eax
lea ecx, [esp + 0x80]
call dword [0x102aba7c]
lea eax, [esp + 0x78]
mov byte [esp + 0x1c0], 0xa
push eax
mov ecx, esi
call dword [0x102abb7c]
lea ecx, [esp + 0x78]
mov byte [esp + 0x1c0], 0
call dword [0x102aba80]
movsd xmm2, qword [edi + 0xc0]
movd xmm0, dword [ebx + 0x7c]
movapd xmm1, xmm2
mulsd xmm1, qword [0x102b8d38]
push 1
cvtdq2pd xmm0, xmm0
addsd xmm1, qword [0x102dbbb0]
subsd xmm0, xmm1
cvttsd2si esi, xmm0
movd xmm0, dword [ebx + 0x78]
cvtdq2pd xmm0, xmm0
subsd xmm0, xmm1
cvttsd2si edx, xmm0
movaps xmm0, xmm2
addsd xmm0, qword [ebx + 0x70]
cvttsd2si ecx, xmm0
movsd xmm0, qword [ebx + 0x68]
addsd xmm0, xmm2
mov dword [esp + 0xe8], ecx
cvttsd2si eax, xmm0
mov dword [esp + 0xe4], eax
dec eax
add eax, edx
mov dword [esp + 0xec], eax
lea eax, [ecx - 1]
mov ecx, dword [esp + 0x34]
add eax, esi
mov dword [esp + 0xf0], eax
lea eax, [esp + 0xe4]
push eax
call dword [0x102abcf8]
mov esi, dword [ebx + 0x44]
mov edi, dword [ebx + 0x48]
cmp esi, edi
je 0x101f2c07
mov ebx, dword [esp + 0x30]
jmp 0x101f2b40
movsd xmm0, qword [esp + 0xc4]
lea ecx, [esp + 0x38]
sub esp, 8
movsd qword [esp], xmm0
call dword [0x102abad0]
push esi
lea ecx, [esp + 0x3c]
call dword [0x102abbe0]
lea eax, [esp + 0x38]
mov ecx, ebx
push eax
call dword [0x102abd00]
cmp byte [esp + 0x60], 0
je 0x101f2b86
push 2
lea ecx, [esp + 0x3c]
call dword [0x102abb84]
lea eax, [esp + 0x38]
mov ecx, ebx
push eax
call dword [0x102abd00]
push 1
push esi
lea ecx, [esp + 0x64]
call dword [0x102aba7c]
lea eax, [esp + 0x5c]
mov byte [esp + 0x1c0], 0xb
push eax
mov ecx, ebx
call dword [0x102abb7c]
lea ecx, [esp + 0x5c]
mov byte [esp + 0x1c0], 0
call dword [0x102aba80]
lea eax, [esi + 0x24]
mov ecx, ebx
push eax
call dword [0x102abac0]
push 1
lea ecx, [esp + 0x3c]
call dword [0x102abb84]
lea eax, [esp + 0x38]
mov ecx, ebx
push eax
call dword [0x102abd00]
lea eax, [esi + 0x28]
mov ecx, ebx
push eax
call dword [0x102ababc]
add esi, 0x2c
cmp esi, edi
jne 0x101f2b40
mov ebx, dword [esp + 0x44]
mov ebx, dword [ebx]
mov esi, 1
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x44], ebx
cmp ebx, dword [esp + 0xa0]
jne 0x101f1dd0
lea ecx, [esp + 0x38]
mov dword [esp + 0x1c0], 0xffffffff
call dword [0x102abd18]
mov ecx, dword [esp + 0x1b8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x170]
xor ecx, esp
call fcn.10257318
mov esp, ebp
pop ebp
ret 0x10