Function at 0x1013cf90
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc8
push ebx
push esi
push edi
mov edi, dword [0x101e6b78]
mov esi, edx
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x3c], edi
mov eax, dword [edi + 0x19e4]
mov byte [eax + 0x7c], 1
mov eax, dword [edi + 0x19e4]
mov dword [ebp - 0x48], eax
cmp byte [eax + 0x7f], 0
je 0x1013cfcf
xor al, al
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
movss xmm0, dword [edi + 0x153c]
mov ebx, dword [ebp + 8]
addss xmm0, xmm0
addss xmm0, dword [edi + 0x1900]
movss dword [ebp - 0x68], xmm0
test bl, 0x10
je 0x1013cffa
xorps xmm0, xmm0
movss dword [ebp - 0x24], xmm0
jmp 0x1013d00a
addss xmm0, dword [edi + 0x1550]
movss dword [ebp - 0x24], xmm0
xorps xmm0, xmm0
movss xmm1, dword [eax + 0x16c]
comiss xmm0, xmm1
movss dword [ebp - 0x10], xmm1
jbe 0x1013d03c
lea ecx, [ebp - 0x70]
call fcn.10111300
movss xmm0, dword [ebp - 0x10]
movss xmm1, dword [0x1017f158]
mov ecx, dword [ebp - 0x34]
addss xmm0, dword [eax]
maxss xmm1, xmm0
mov dword [ebp - 0x44], ecx
cvttss2si eax, xmm1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
subss xmm0, dword [ebp - 0x24]
movss dword [ebp - 0x10], xmm0
cmp ecx, 0xffffffff
jae 0x1013d07c
mov esi, ecx
nop dword [eax + eax]
mov cl, byte [esi]
test cl, cl
je 0x1013d079
cmp cl, 0x23
jne 0x1013d070
cmp byte [esi + 1], cl
je 0x1013d079
inc esi
mov dword [ebp - 0x44], esi
cmp esi, 0xffffffff
jb 0x1013d060
mov esi, dword [ebp - 0x28]
call fcn.10110f50
mov ecx, dword [ebp - 0x34]
call fcn.10111140
mov dword [ebp - 0x6c], ebx
test bl, 0x20
je 0x1013d09d
and ebx, 0xff9fffff
or ebx, 0x100008
test bl, 8
jne 0x1013d0ab
mov edx, ebx
mov ecx, esi
call fcn.10130090
test ebx, 0x700000
jne 0x1013d0c0
mov eax, dword [edi + 0x2c48]
and eax, 0x700000
or ebx, eax
test ebx, 0x1800000
jne 0x1013d0d5
mov eax, dword [edi + 0x2c48]
and eax, 0x1800000
or ebx, eax
test ebx, 0x6000000
jne 0x1013d0ea
mov eax, dword [edi + 0x2c48]
and eax, 0x6000000
or ebx, eax
test ebx, 0x18000000
jne 0x1013d0ff
mov eax, dword [edi + 0x2c48]
and eax, 0x18000000
or ebx, eax
mov eax, dword [edi + 0x2c48]
and eax, 0xe00fffff
or ebx, eax
mov ecx, ebx
and ecx, 0x700000
je 0x1013da22
lea eax, [ecx - 1]
test ecx, eax
jne 0x1013da22
mov ecx, ebx
and ecx, 0x18000000
je 0x1013da22
lea eax, [ecx - 1]
test ecx, eax
jne 0x1013da22
movss xmm0, dword [esi]
mov ecx, ebx
shr ecx, 1
mov eax, ebx
shr eax, 0x13
not cl
and eax, 0xffffff01
movss dword [ebp - 0x20], xmm0
movss xmm0, dword [esi + 4]
and ecx, 0xffffff01
mov dword [ebp - 0x5c], eax
movzx eax, cl
add eax, 3
movss dword [ebp - 0x1c], xmm0
movss xmm0, dword [esi + 8]
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x38], eax
movss dword [ebp - 0x18], xmm0
test cl, cl
je 0x1013d190
movss xmm0, dword [esi + 0xc]
movss dword [ebp - 0x14], xmm0
jmp 0x1013d197
mov dword [ebp - 0x14], 0x3f800000
mov eax, ebx
and eax, 0x10100000
cmp eax, 0x10100000
jne 0x1013d1c5
movss xmm2, dword [ebp - 0x18]
lea eax, [ebp - 0x18]
movss xmm1, dword [ebp - 0x1c]
lea edx, [ebp - 0x1c]
movss xmm0, dword [ebp - 0x20]
lea ecx, [ebp - 0x20]
push eax
call fcn.1011b730
jmp 0x1013d1f1
mov eax, ebx
and eax, 0x8200000
cmp eax, 0x8200000
jne 0x1013d1f4
movss xmm2, dword [ebp - 0x18]
lea eax, [ebp - 0x18]
movss xmm1, dword [ebp - 0x1c]
lea edx, [ebp - 0x1c]
movss xmm0, dword [ebp - 0x20]
lea ecx, [ebp - 0x20]
push eax
call fcn.1011b880
add esp, 4
movss xmm0, dword [ebp - 0x20]
xorps xmm5, xmm5
comiss xmm0, xmm5
movss xmm2, dword [0x1017f3e0]
movss xmm1, dword [0x1017f114]
jb 0x1013d216
movaps xmm4, xmm1
jmp 0x1013d219
movaps xmm4, xmm2
movss xmm0, dword [ebp - 0x20]
movss xmm3, dword [0x1017f338]
mulss xmm0, xmm3
addss xmm0, xmm4
cvttss2si edx, xmm0
movss xmm0, dword [ebp - 0x1c]
comiss xmm0, xmm5
mov dword [ebp - 0x58], edx
jb 0x1013d244
movaps xmm4, xmm1
jmp 0x1013d247
movaps xmm4, xmm2
movss xmm0, dword [ebp - 0x1c]
mulss xmm0, xmm3
addss xmm0, xmm4
cvttss2si ecx, xmm0
movss xmm0, dword [ebp - 0x18]
comiss xmm0, xmm5
mov dword [ebp - 0x54], ecx
jb 0x1013d26a
movaps xmm4, xmm1
jmp 0x1013d26d
movaps xmm4, xmm2
movss xmm0, dword [ebp - 0x18]
mulss xmm0, xmm3
addss xmm0, xmm4
cvttss2si eax, xmm0
movss xmm0, dword [ebp - 0x14]
comiss xmm0, xmm5
mov dword [ebp - 0x50], eax
jae 0x1013d28e
movaps xmm1, xmm2
movss xmm0, dword [ebp - 0x14]
mulss xmm0, xmm3
mov byte [ebp - 5], 0
mov byte [ebp - 6], 0
addss xmm0, xmm1
cvttss2si edi, xmm0
mov dword [ebp - 0x2c], edi
mov dword [ebp - 0x4c], edi
mov edi, dword [ebp - 0x3c]
test ebx, 0x300000
je 0x1013d52a
test bl, 0x20
jne 0x1013d52a
mov ecx, dword [ebp - 0x38]
movss xmm2, dword [edi + 0x1550]
movss xmm4, dword [ebp - 0x10]
movaps xmm0, xmm2
movaps xmm1, xmm4
lea eax, [ecx - 1]
movd xmm3, eax
cvtdq2ps xmm3, xmm3
mulss xmm0, xmm3
subss xmm1, xmm0
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
mov ecx, str.M:000
divss xmm1, xmm0
cvttss2si eax, xmm1
movss xmm1, dword [0x1017f158]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
maxss xmm1, xmm0
addss xmm2, xmm1
movss dword [ebp - 0x10], xmm1
movss xmm1, dword [0x1017f158]
mulss xmm2, xmm3
movss xmm3, dword [0x1017f3c0]
subss xmm4, xmm2
cvttss2si eax, xmm4
movd xmm0, eax
mov eax, ebx
and eax, 0x1000000
mov dword [ebp - 0x64], eax
mov eax, str.M:0.000
cmove eax, ecx
mov ecx, dword [0x101e6b78]
push ecx
cvtdq2ps xmm0, xmm0
push 0
push eax
lea eax, [ebp - 0x30]
push ecx
movss xmm2, dword [ecx + 0x1900]
mov ecx, dword [ecx + 0x18fc]
maxss xmm1, xmm0
mov dword [esp], 0xbf800000
push eax
movss dword [ebp - 0x60], xmm1
call fcn.10129e60
movss xmm0, dword [ebp - 0x30]
addss xmm0, dword [0x1017f150]
movss xmm1, dword [ebp - 0x10]
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
comiss xmm0, xmm1
jb 0x1013d3aa
xor edi, edi
jmp 0x1013d3b9
mov edi, ebx
and edi, 0x200000
neg edi
sbb edi, edi
neg edi
inc edi
movaps xmm0, xmm1
call fcn.10111d20
xor esi, esi
cmp dword [ebp - 0x38], esi
jbe 0x1013d515
mov eax, ebx
mov dword [ebp - 0xc], 0xff
and eax, 8
shl edi, 4
mov dword [ebp - 0x2c], eax
nop
test esi, esi
jle 0x1013d3f7
mov eax, dword [ebp - 0x3c]
xorps xmm0, xmm0
movss xmm1, dword [eax + 0x1550]
call fcn.1011d390
mov ecx, dword [ebp - 0x38]
lea eax, [esi + 1]
cmp eax, ecx
jne 0x1013d40b
movss xmm0, dword [ebp - 0x60]
call fcn.10111d20
cmp dword [ebp - 0x64], 0
je 0x1013d476
cmp byte [ebp - 0x5c], 0
je 0x1013d41c
xorps xmm0, xmm0
jmp 0x1013d424
movss xmm0, dword [0x1017f158]
movss xmm3, dword [0x1017f098]
lea eax, [ebp - 0x10]
push ecx
mov ecx, dword [esi*4 + 0x1017e6b0]
mov edx, 4
mov dword [esp], 0x3f800000
push dword [edi + 0x1017e680]
movss dword [ebp - 0x10], xmm0
push eax
lea eax, [ebp - 0x40]
mov dword [ebp - 0x40], 0
push eax
lea eax, [ebp - 0x20]
lea eax, [eax + esi*4]
push eax
call fcn.10137f50
mov cl, byte [ebp - 5]
add esp, 0x14
or cl, al
or byte [ebp - 6], cl
mov byte [ebp - 5], cl
jmp 0x1013d4c0
mov eax, dword [ebp - 0xc]
xor ecx, ecx
cmp byte [ebp - 0x5c], cl
movss xmm3, dword [0x1017f158]
cmovne eax, ecx
mov dword [ebp - 0x10], ecx
push ecx
mov ecx, dword [esi*4 + 0x1017e6b0]
xor edx, edx
mov dword [ebp - 0x40], eax
lea eax, [ebp - 0x40]
mov dword [esp], 0x3f800000
push dword [edi + 0x1017e620]
push eax
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x58]
lea eax, [eax + esi*4]
push eax
call fcn.10137f50
add esp, 0x14
or byte [ebp - 5], al
cmp dword [ebp - 0x2c], 0
jne 0x1013d508
mov eax, dword [0x101e6b78]
cmp byte [eax + 0x3db], 0
mov ecx, dword [eax + 0x19e4]
mov dword [ebp - 0x40], ecx
je 0x1013d508
mov ecx, 8
call fcn.101196a0
test al, al
je 0x1013d508
push ecx
mov ecx, dword [ebp - 0x40]
push str.context
call fcn.1011d170
test eax, eax
je 0x1013da22
mov ecx, eax
call fcn.10110830
inc esi
add edi, 4
cmp esi, dword [ebp - 0x38]
jl 0x1013d3e0
call fcn.10111cc0
call fcn.10111cc0
mov esi, dword [ebp - 0x28]
mov edi, dword [ebp - 0x3c]
jmp 0x1013d6c4
test ebx, 0x400000
je 0x1013d6c4
test bl, 0x20
jne 0x1013d6c4
cmp byte [ebp - 0x24], 0
mov dword [ebp - 0xc], 0xff
je 0x1013d5b5
mov esi, dword [ebp - 0x2c]
test esi, esi
jns 0x1013d557
xor esi, esi
jmp 0x1013d561
cmp esi, 0xff
cmovg esi, dword [ebp - 0xc]
test eax, eax
jns 0x1013d569
xor eax, eax
jmp 0x1013d572
cmp eax, 0xff
cmovg eax, dword [ebp - 0xc]
test ecx, ecx
jns 0x1013d57a
xor ecx, ecx
jmp 0x1013d584
cmp ecx, 0xff
cmovg ecx, dword [ebp - 0xc]
test edx, edx
jns 0x1013d58c
xor edx, edx
jmp 0x1013d596
cmp edx, 0xff
cmovg edx, dword [ebp - 0xc]
push esi
push eax
push ecx
push edx
push 0x1017e4dc
lea eax, [ebp - 0xc4]
push 0x40
push eax
call fcn.1011c480
mov esi, dword [ebp - 0x28]
add esp, 0x1c
jmp 0x1013d603
test eax, eax
jns 0x1013d5bd
xor eax, eax
jmp 0x1013d5c6
cmp eax, 0xff
cmovg eax, dword [ebp - 0xc]
test ecx, ecx
jns 0x1013d5ce
xor ecx, ecx
jmp 0x1013d5d8
cmp ecx, 0xff
cmovg ecx, dword [ebp - 0xc]
test edx, edx
jns 0x1013d5e0
xor edx, edx
jmp 0x1013d5ea
cmp edx, 0xff
cmovg edx, dword [ebp - 0xc]
push eax
push ecx
push edx
push str._02X_02X_02X
lea eax, [ebp - 0xc4]
push 0x40
push eax
call fcn.1011c480
add esp, 0x18
movss xmm0, dword [ebp - 0x10]
call fcn.10111d20
push 0
push 0
push 6
lea eax, [ebp - 0x30]
mov dword [ebp - 0x30], 0
push eax
push 0x40
lea edx, [ebp - 0xc4]
mov dword [ebp - 0x2c], 0
mov ecx, str.Text
call fcn.10130ff0
add esp, 0x14
test al, al
je 0x1013d6b5
mov byte [ebp - 5], 1
lea ecx, [ebp - 0xc4]
mov al, byte [ecx]
cmp al, 0x23
je 0x1013d656
cmp al, 0x20
je 0x1013d656
cmp al, 9
jne 0x1013d659
inc ecx
jmp 0x1013d648
cmp byte [ebp - 0x24], 0
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x54], 0
mov dword [ebp - 0x58], 0
je 0x1013d69b
lea eax, [ebp - 0x4c]
push eax
lea eax, [ebp - 0x50]
push eax
lea eax, [ebp - 0x54]
push eax
lea eax, [ebp - 0x58]
push eax
push str._02X_02X_02X_02X
push ecx
call fcn.1003a850
add esp, 0x18
jmp 0x1013d6b5
lea eax, [ebp - 0x50]
push eax
lea eax, [ebp - 0x54]
push eax
lea eax, [ebp - 0x58]
push eax
push 0x1017e4b0
push ecx
call fcn.1003a850
add esp, 0x14
test bl, 8
jne 0x1013d6bf
call fcn.101107e0
call fcn.10111cc0
xor eax, eax
mov dword [ebp - 0x28], eax
test bl, 0x10
jne 0x1013d830
test bl, 0x20
jne 0x1013d6e7
movss xmm1, dword [edi + 0x1550]
xorps xmm0, xmm0
call fcn.1011d390
cmp byte [ebp - 0x24], 0
je 0x1013d6f4
movss xmm1, dword [esi + 0xc]
jmp 0x1013d6fc
movss xmm1, dword [0x1017f158]
movss xmm0, dword [esi]
lea edx, [ebp - 0x80]
movss dword [ebp - 0x80], xmm0
movss xmm0, dword [esi + 4]
mov dword [ebp - 0x2c], 0
push dword [ebp - 0x2c]
mov dword [ebp - 0x30], 0
push dword [ebp - 0x30]
movss dword [ebp - 0x7c], xmm0
movss xmm0, dword [esi + 8]
push ebx
movss dword [ebp - 0x78], xmm0
movss dword [ebp - 0x74], xmm1
call fcn.101399d0
add esp, 0xc
test al, al
je 0x1013d7b2
test bl, 4
jne 0x1013d7b2
movups xmm0, xmmword [ebp - 0x80]
mov ecx, str.picker
movups xmmword [edi + 0x2c4c], xmm0
call fcn.101109d0
mov eax, dword [ebp - 0x48]
movss xmm1, dword [eax + 0x114]
movss xmm0, dword [eax + 0x120]
addss xmm0, dword [edi + 0x154c]
mov eax, dword [0x101e6b78]
subss xmm1, dword [0x1017f158]
movss dword [eax + 0x1aac], xmm0
mov dword [eax + 0x1ab0], 0
movss dword [eax + 0x1aa8], xmm1
mov dword [eax + 0x1ab4], 0
mov dword [eax + 0x1a8c], 1
test bl, 8
jne 0x1013d7bc
call fcn.101107e0
mov ecx, str.picker
call fcn.10110460
test al, al
je 0x1013d830
mov eax, dword [edi + 0x19e4]
mov ecx, dword [ebp - 0x34]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x44]
cmp ecx, eax
je 0x1013d7ed
push ecx
mov edx, eax
call fcn.10130a30
add esp, 4
call fcn.10137f10
movss xmm0, dword [ebp - 0x68]
mulss xmm0, dword [0x1017f22c]
call fcn.10111d20
lea eax, [edi + 0x2c4c]
mov edx, esi
push eax
mov eax, dword [ebp - 0x6c]
mov ecx, 0x1017df74
and eax, 0x1f890002
or eax, 0x240080
push eax
call fcn.10138620
or byte [ebp - 5], al
add esp, 8
call fcn.10111cc0
call fcn.10110340
mov edi, dword [ebp - 0x44]
cmp dword [ebp - 0x34], edi
je 0x1013d85d
test bl, bl
js 0x1013d85d
mov eax, dword [ebp - 0x3c]
xorps xmm0, xmm0
movss xmm1, dword [eax + 0x1550]
call fcn.1011d390
push ecx
mov ecx, dword [ebp - 0x34]
mov edx, edi
call fcn.10130a30
add esp, 4
cmp byte [ebp - 5], 0
mov edi, dword [ebp - 0x28]
je 0x1013d915
test edi, edi
jne 0x1013d915
cmp byte [ebp - 6], 0
jne 0x1013d88a
movups xmm0, xmmword [ebp - 0x58]
cvtdq2ps xmm0, xmm0
divps xmm0, xmmword [0x1017f9e0]
movups xmmword [ebp - 0x20], xmm0
mov eax, ebx
and eax, 0x8200000
cmp eax, 0x8200000
jne 0x1013d8b9
movss xmm2, dword [ebp - 0x18]
lea eax, [ebp - 0x18]
movss xmm1, dword [ebp - 0x1c]
lea edx, [ebp - 0x1c]
movss xmm0, dword [ebp - 0x20]
lea ecx, [ebp - 0x20]
push eax
call fcn.1011b730
add esp, 4
mov eax, ebx
and eax, 0x10100000
cmp eax, 0x10100000
jne 0x1013d8e8
movss xmm2, dword [ebp - 0x18]
lea eax, [ebp - 0x18]
movss xmm1, dword [ebp - 0x1c]
lea edx, [ebp - 0x1c]
movss xmm0, dword [ebp - 0x20]
lea ecx, [ebp - 0x20]
push eax
call fcn.1011b880
add esp, 4
cmp byte [ebp - 0x24], 0
movss xmm0, dword [ebp - 0x20]
movss dword [esi], xmm0
movss xmm0, dword [ebp - 0x1c]
movss dword [esi + 4], xmm0
movss xmm0, dword [ebp - 0x18]
movss dword [esi + 8], xmm0
je 0x1013d915
movss xmm0, dword [ebp - 0x14]
movss dword [esi + 0xc], xmm0
mov eax, dword [0x101e6b78]
mov ecx, dword [eax + 0x19e4]
mov eax, dword [ecx + 0x1c0]
test eax, eax
jle 0x1013da22
dec eax
mov dword [ecx + 0x1c0], eax
call fcn.10110d40
mov ecx, dword [ebp - 0x48]
test byte [ecx + 0x110], 1
je 0x1013d9e8
test ebx, 0x200
jne 0x1013d9e8
call fcn.1010c030
test al, al
je 0x1013d9e5
mov ecx, str._COL3F
mov byte [ebp - 6], 0
call fcn.1010bdb0
test eax, eax
je 0x1013d98d
mov eax, dword [eax]
mov byte [ebp - 6], 1
mov byte [ebp - 5], 1
movq xmm0, qword [eax]
movq qword [esi], xmm0
mov eax, dword [eax + 8]
mov dword [esi + 8], eax
mov ecx, str._COL4F
call fcn.1010bdb0
test eax, eax
je 0x1013d9b3
mov ecx, dword [ebp - 0x38]
shl ecx, 2
push ecx
push dword [eax]
push esi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov byte [ebp - 5], 1
jmp 0x1013d9b9
cmp byte [ebp - 6], 0
je 0x1013d9e0
test ebx, 0x10000000
je 0x1013d9e0
movss xmm2, dword [esi + 8]
lea eax, [esi + 8]
movss xmm1, dword [esi + 4]
lea edx, [esi + 4]
movss xmm0, dword [esi]
mov ecx, esi
push eax
call fcn.1011b880
add esp, 4
call fcn.1010bd80
mov ecx, dword [ebp - 0x48]
test edi, edi
je 0x1013da07
mov eax, dword [ebp - 0x3c]
mov edx, dword [eax + 0x1a04]
test edx, edx
je 0x1013da07
cmp dword [eax + 0x1a2c], edi
jne 0x1013da07
mov dword [ecx + 0x10c], edx
mov bl, byte [ebp - 5]
test bl, bl
je 0x1013da19
mov ecx, dword [ecx + 0x10c]
call fcn.101198e0
pop edi
pop esi
mov al, bl
pop ebx
mov esp, ebp
pop ebp
ret
push 0
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_exit]
int3