Function at 0x10050f70
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
push ebx
mov ebx, dword [0x1017bfd8]
push esi
push edi
mov esi, ebx
mov byte [ebp - 8], 0
xor edi, edi
call fcn.1004dda0
test eax, eax
je 0x10050f9d
mov dword [esi + 0x1b34], edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
xorps xmm5, xmm5
cmp dword [esi + 0x1b38], edi
je 0x10050fe9
cmp dword [esi + 0x1b34], edi
jne 0x10050fe9
comiss xmm5, dword [esi + 0x1c44]
movss xmm0, dword [esi + 0x18]
mulss xmm0, dword [0x10145124]
movss xmm1, dword [esi + 0x1b44]
subss xmm1, xmm0
maxss xmm1, xmm5
movss dword [esi + 0x1b44], xmm1
jb 0x10050fe9
comiss xmm5, xmm1
jb 0x10050fe9
mov dword [esi + 0x1b38], edi
mov eax, dword [esi + 0x1b34]
mov ecx, 1
movss xmm6, dword [0x10145040]
test eax, eax
jne 0x10051015
mov edx, ecx
lea ecx, [edx + 2]
call fcn.1004f4f0
comiss xmm0, xmm5
ja 0x1005101f
mov eax, dword [esi + 0x1b34]
xor dl, dl
test eax, eax
jne 0x100510c2
cmp byte [esi + 0xf8], 0
je 0x100510c2
mov eax, dword [ebx + 0x34]
test eax, eax
js 0x100510c2
cmp eax, 0x200
jge 0x10051375
movss xmm2, dword [ebx + eax*4 + 0x448]
ucomiss xmm2, xmm5
lahf
test ah, 0x44
jp 0x10051058
mov al, 1
jmp 0x100510b4
movss xmm3, dword [ebx + 0x88]
comiss xmm2, xmm3
jbe 0x100510b2
movss xmm0, dword [ebx + 0x8c]
comiss xmm5, xmm0
jae 0x100510a9
movaps xmm1, xmm6
divss xmm1, xmm0
movaps xmm0, xmm2
subss xmm2, xmm3
subss xmm0, dword [ebx + 0x18]
mulss xmm2, xmm1
subss xmm0, xmm3
cvttss2si ecx, xmm2
mulss xmm0, xmm1
cvttss2si eax, xmm0
sub ecx, eax
xor eax, eax
test ecx, ecx
cmovg eax, ecx
test eax, eax
setg al
jmp 0x100510b4
xor eax, eax
test eax, eax
setg al
jmp 0x100510b4
xor al, al
test al, al
je 0x100510c2
test byte [esi + 8], 1
je 0x100510c2
mov al, 1
jmp 0x100510c4
xor al, al
mov byte [ebp - 1], al
test dl, dl
jne 0x100510cf
test al, al
je 0x10051122
mov eax, dword [esi + 0x1af4]
test eax, eax
jne 0x100510f3
mov ecx, dword [esi + 0x19b0]
mov edx, Ordinal_2
push 0xffffffffffffffff
dec ecx
call fcn.10050e70
add esp, 4
test eax, eax
je 0x10051122
mov dword [esi + 0x1b38], eax
mov dword [esi + 0x1b34], eax
mov al, byte [ebp - 1]
xor al, 1
mov dword [esi + 0x1b44], edi
mov byte [esi + 0x1b48], al
movzx eax, al
add eax, 3
mov dword [esi + 0x1b40], edi
mov dword [esi + 0x1b1c], eax
movss xmm0, dword [esi + 0x1b40]
addss xmm0, dword [esi + 0x18]
mov ecx, dword [esi + 0x1b34]
movss xmm2, dword [0x10144f90]
movss xmm3, dword [0x10145158]
movss dword [esi + 0x1b40], xmm0
test ecx, ecx
je 0x10051343
cmp dword [esi + 0x1b1c], 4
jne 0x10051241
subss xmm0, xmm2
mulss xmm0, xmm3
comiss xmm5, xmm0
jbe 0x10051174
xorps xmm0, xmm0
jmp 0x10051178
minss xmm0, xmm6
movss xmm7, dword [esi + 0x1b44]
mov edx, 4
maxss xmm7, xmm0
lea ecx, [edx + 9]
movss dword [esi + 0x1b44], xmm7
call fcn.1004f4f0
xor ebx, ebx
lea ecx, [edx + 8]
comiss xmm0, xmm5
seta bl
call fcn.1004f4f0
mov ecx, dword [esi + 0x1b34]
xor eax, eax
comiss xmm0, xmm5
seta al
sub eax, ebx
je 0x100511e0
mov ecx, eax
call fcn.10050ed0
movss xmm6, dword [0x10145040]
xorps xmm5, xmm5
mov ecx, dword [esi + 0x1b34]
movaps xmm7, xmm6
mov dword [esi + 0x1b44], 0x3f800000
mov ebx, dword [0x1017bfd8]
comiss xmm5, dword [ebx + 0x308]
jb 0x10051229
comiss xmm6, xmm7
seta al
and byte [esi + 0x1b48], al
je 0x10051218
cmp dword [esi + 0x1af4], edi
je 0x1005121a
mov byte [ebp - 8], 1
mov dword [esi + 0x1b34], 0
jmp 0x10051343
mov edi, ecx
mov dword [esi + 0x1b34], 0
jmp 0x10051343
movss xmm2, dword [0x10144f90]
movss xmm3, dword [0x10145158]
test ecx, ecx
je 0x10051343
cmp dword [esi + 0x1b1c], 3
mov ecx, edi
mov dl, byte [ebp - 8]
jne 0x10051343
movss xmm1, dword [esi + 0x1b40]
subss xmm1, xmm2
mulss xmm1, xmm3
comiss xmm5, xmm1
jbe 0x1005126d
xorps xmm1, xmm1
jmp 0x10051271
minss xmm1, xmm6
movss xmm0, dword [esi + 0x1b44]
maxss xmm0, xmm1
movss dword [esi + 0x1b44], xmm0
mov eax, dword [ebx + 0x34]
test eax, eax
js 0x10051334
cmp eax, 0x200
jge 0x10051375
movss xmm1, dword [ebx + eax*4 + 0x448]
ucomiss xmm1, xmm5
lahf
test ah, 0x44
jp 0x100512b1
mov al, 1
jmp 0x10051310
movss xmm2, dword [ebx + 0x88]
comiss xmm1, xmm2
jbe 0x1005130e
movss xmm0, dword [ebx + 0x8c]
comiss xmm5, xmm0
mov byte [ebp - 8], dl
jae 0x10051305
divss xmm6, xmm0
mov byte [ebp - 8], dl
movaps xmm0, xmm1
subss xmm1, xmm2
subss xmm0, dword [ebx + 0x18]
mulss xmm1, xmm6
subss xmm0, xmm2
cvttss2si ecx, xmm1
mulss xmm0, xmm6
cvttss2si eax, xmm0
sub ecx, eax
xor eax, eax
test ecx, ecx
cmovg eax, ecx
test eax, eax
setg al
jmp 0x10051310
xor eax, eax
test eax, eax
setg al
jmp 0x10051310
xor al, al
test al, al
je 0x10051334
xor ecx, ecx
cmp byte [esi + 0xf9], cl
setne cl
lea ecx, [ecx*2 - 1]
call fcn.10050ed0
mov ebx, dword [0x1017bfd8]
xorps xmm5, xmm5
cmp byte [esi + 0xf8], 0
jne 0x10051343
mov edi, dword [esi + 0x1b34]
cmp dword [esi + 0x1a04], 0
je 0x10051359
cmp byte [esi + 0x1a15], 0
je 0x100513e6
mov edx, 2
lea ecx, [edx + 0xe]
call fcn.1004f4f0
comiss xmm0, xmm5
jbe 0x100513e6
lea eax, [esi + 0xe0]
test ebx, ebx
jne 0x1005137d
push 0
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_exit]
test eax, eax
jne 0x10051387
lea eax, [ebx + 0xe0]
movss xmm0, dword [eax]
movss xmm1, dword [0x10145370]
comiss xmm0, xmm1
movss xmm2, dword [eax + 4]
jb 0x100513a6
comiss xmm2, xmm1
jb 0x100513a6
mov dl, 1
jmp 0x100513a8
xor dl, dl
lea eax, [esi + 0x378]
test eax, eax
jne 0x100513b8
lea eax, [ebx + 0xe0]
movss xmm0, dword [eax]
comiss xmm0, xmm1
movss xmm2, dword [eax + 4]
jb 0x100513cf
comiss xmm2, xmm1
jb 0x100513cf
mov cl, 1
jmp 0x100513d1
xor cl, cl
mov eax, dword [ebp - 8]
cmp dl, cl
movzx eax, al
mov edx, 1
cmove eax, edx
mov dword [ebp - 8], eax
jmp 0x100513eb
mov edx, 1
mov eax, dword [esi + 0x1b34]
test eax, eax
je 0x100514de
test byte [eax + 8], 4
jne 0x100514de
mov eax, dword [esi + 0x1b1c]
cmp eax, 3
jne 0x10051421
cmp byte [esi + 0xf9], 0
jne 0x100514de
push ecx
lea ecx, [ebp - 0x10]
jmp 0x10051430
cmp eax, 4
jne 0x100514de
push ecx
mov edx, eax
lea ecx, [ebp - 0x18]
mov dword [esp], 0
xorps xmm3, xmm3
push 0
call fcn.1004f660
add esp, 8
xorps xmm2, xmm2
movss xmm4, dword [eax]
movss xmm3, dword [eax + 4]
ucomiss xmm4, xmm2
lahf
test ah, 0x44
jp 0x10051462
ucomiss xmm3, xmm2
lahf
test ah, 0x44
jnp 0x100514de
movss xmm1, dword [esi + 0xa8]
movss xmm0, dword [esi + 0x18]
minss xmm1, dword [esi + 0xa4]
mulss xmm0, dword [0x101452a0]
mulss xmm1, xmm0
cvttss2si eax, xmm1
movd xmm0, eax
mov eax, dword [esi + 0x1b34]
cvtdq2ps xmm0, xmm0
mov eax, dword [eax + 0x2f0]
mulss xmm4, xmm0
mulss xmm3, xmm0
addss xmm4, dword [eax + 0xc]
addss xmm3, dword [eax + 0x10]
movss dword [eax + 0xc], xmm4
movss dword [eax + 0x10], xmm3
mov eax, dword [esi + 0x1b34]
mov byte [esi + 0x1b57], 1
test dword [eax + 8], 0x100
jne 0x100514de
comiss xmm2, dword [ebx + 0x2c94]
jb 0x100514de
mov eax, dword [ebx + 0x1c]
mov dword [ebx + 0x2c94], eax
test edi, edi
je 0x1005155f
mov eax, dword [esi + 0x1af4]
test eax, eax
je 0x100514f4
cmp edi, dword [eax + 0x2f0]
je 0x1005154d
mov word [esi + 0x1b56], 0x100
mov eax, dword [edi + 0x2fc]
test eax, eax
cmovne edi, eax
mov ecx, edi
call fcn.1004dfd0
mov ecx, edi
call fcn.1004ced0
cmp dword [edi + 0x300], 0
jne 0x10051528
xor dl, dl
mov ecx, edi
call fcn.1004f320
cmp dword [edi + 0x13c], 2
mov ecx, dword [0x1017bfd8]
jne 0x10051553
mov dword [esi + 0x1b4c], 1
mov dword [esi + 0x1b34], 0
jmp 0x10051565
mov ecx, dword [0x1017bfd8]
mov dword [esi + 0x1b34], 0
jmp 0x10051565
mov ecx, dword [0x1017bfd8]
cmp byte [ebp - 8], 0
je 0x100515f3
mov edi, dword [esi + 0x1af4]
test edi, edi
je 0x100515f3
test byte [edi + 0x13c], 2
jne 0x100515a0
mov eax, dword [edi + 8]
and eax, 0x15000000
cmp eax, 0x1000000
jne 0x100515a0
mov edi, dword [edi + 0x2ec]
test byte [edi + 0x13c], 2
je 0x10051582
mov ebx, dword [esi + 0x1af4]
cmp edi, ebx
je 0x100515bd
mov ecx, edi
call fcn.1004ced0
mov ecx, dword [0x1017bfd8]
mov dword [edi + 0x2fc], ebx
mov eax, dword [esi + 0x1af4]
mov word [esi + 0x1b56], 0x100
test byte [eax + 0x13c], 2
je 0x100515fa
mov eax, dword [esi + 0x1b4c]
xor eax, 1
mov dword [ecx + 0x1b4c], eax
je 0x10051604
mov ecx, dword [ecx + 0x1af4]
mov dl, 1
call fcn.1004f320
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [ecx + 0x1b4c], 0
mov edx, dword [ecx + 0x1af4]
mov eax, dword [edx + 0x2fc]
test eax, eax
cmovne edx, eax
mov dword [ecx + 0x1af4], edx
mov esi, dword [edx + 0x300]
test esi, esi
je 0x100515e6
lea eax, [edx + 0x308]
mov ecx, esi
push eax
xor edx, edx
call fcn.10044aa0
add esp, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret