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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0xe8
push esi
mov esi, dword [0x100a5ffc]
push edi
mov edi, edx
mov edx, ecx
mov dword [esp + 0x3c], edi
mov eax, dword [esi + 0x3e40]
mov dword [esp + 0x64], edx
mov byte [eax + 0xac], 1
mov eax, dword [esi + 0x3e40]
mov dword [esp + 0x2c], eax
cmp byte [eax + 0xaf], 0
je 0x10050c18
xor al, al
pop edi
pop esi
mov esp, ebp
pop ebp
ret
movss xmm2, dword [esi + 0x37e0]
addss xmm2, xmm2
addss xmm2, dword [esi + 0x3bd0]
movss dword [esp + 0x98], xmm2
call fcn.1002c310
test byte [ebp + 8], 0x10
movss dword [esp + 0x78], xmm0
je 0x10050c4b
xorps xmm1, xmm1
jmp 0x10050c56
movaps xmm1, xmm2
addss xmm1, dword [esi + 0x37f4]
movss dword [esp + 0x70], xmm1
subss xmm0, xmm1
mov dword [esp + 0x34], edx
movss dword [esp + 0x6c], xmm0
cmp edx, 0xffffffff
jae 0x10050c8f
mov edi, edx
mov cl, byte [edi]
test cl, cl
je 0x10050c8b
cmp cl, 0x23
jne 0x10050c81
cmp byte [edi + 1], cl
je 0x10050c8b
inc edi
mov dword [esp + 0x34], edi
cmp edi, 0xffffffff
jb 0x10050c71
mov edi, dword [esp + 0x3c]
mov dword [esi + 0x46a0], 0
call fcn.1002c460
mov ecx, dword [esp + 0x64]
call fcn.10029c60
mov eax, dword [esi + 0x5964]
mov dword [esp + 0x7c], eax
test eax, eax
jne 0x10050ccf
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 0xe4]
mov eax, dword [eax + 0xec]
mov eax, dword [eax + ecx*4 - 4]
mov dword [esi + 0x5964], eax
mov ecx, dword [ebp + 8]
mov dword [esp + 0x9c], ecx
test cl, 0x20
je 0x10050ced
and ecx, 0xff9fffff
or ecx, 0x100008
mov dword [ebp + 8], ecx
test cl, 8
jne 0x10050cfe
mov edx, ecx
mov ecx, edi
call fcn.10054e30
mov ecx, dword [ebp + 8]
test ecx, 0x700000
jne 0x10050d13
mov eax, dword [esi + 0x5960]
and eax, 0x700000
or ecx, eax
test ecx, 0x1800000
jne 0x10050d28
mov eax, dword [esi + 0x5960]
and eax, 0x1800000
or ecx, eax
test ecx, 0x6000000
jne 0x10050d3d
mov eax, dword [esi + 0x5960]
and eax, 0x6000000
or ecx, eax
test ecx, 0x18000000
jne 0x10050d52
mov eax, dword [esi + 0x5960]
and eax, 0x18000000
or ecx, eax
mov eax, dword [esi + 0x5960]
movss xmm3, dword [edi]
and eax, 0xe00fffff
movss xmm1, dword [edi + 4]
or ecx, eax
movss xmm2, dword [edi + 8]
mov edx, ecx
movss xmm0, dword [0x10096464]
mov eax, ecx
shr edx, 1
shr eax, 0x13
not dl
and eax, 0xffffff01
mov dword [ebp + 8], ecx
and edx, 0xffffff01
mov dword [esp + 0x44], eax
movzx eax, dl
add eax, 3
mov dword [esp + 0x38], edx
mov dword [esp + 0x40], eax
movss dword [esp + 0x1c], xmm3
movss dword [esp + 0x20], xmm1
movss dword [esp + 0x24], xmm2
movss dword [esp + 0x48], xmm0
test dl, dl
je 0x10050dc1
movss xmm0, dword [edi + 0xc]
mov eax, ecx
movss dword [esp + 0x28], xmm0
and eax, 0x10100000
cmp eax, 0x10100000
jne 0x10050def
lea eax, [esp + 0x24]
movaps xmm0, xmm3
push eax
lea edx, [esp + 0x24]
lea ecx, [esp + 0x20]
call fcn.1001efd0
add esp, 4
jmp 0x10050e29
mov eax, ecx
and eax, 0x8200000
cmp eax, 0x8200000
jne 0x10050e48
lea eax, [esp + 0x24]
movaps xmm0, xmm3
push eax
lea edx, [esp + 0x24]
lea ecx, [esp + 0x20]
call fcn.1001ef40
add esp, 4
lea eax, [esp + 0x24]
push eax
mov eax, edx
mov edx, ecx
push eax
mov ecx, edi
call fcn.10050b10
add esp, 8
mov edx, dword [esp + 0x38]
mov ecx, dword [ebp + 8]
movss xmm3, dword [esp + 0x1c]
movss xmm1, dword [esp + 0x20]
movss xmm2, dword [esp + 0x24]
movss xmm0, dword [esp + 0x28]
comiss xmm3, dword [0x1009635c]
movss xmm5, dword [0x100965c0]
movss xmm4, dword [0x10096418]
jb 0x10050e66
movaps xmm7, xmm4
jmp 0x10050e69
movaps xmm7, xmm5
comiss xmm1, dword [0x1009635c]
movss xmm6, dword [0x10096558]
mulss xmm3, xmm6
addss xmm3, xmm7
cvttss2si eax, xmm3
mov dword [esp + 0x50], eax
jb 0x10050e8f
movaps xmm3, xmm4
jmp 0x10050e92
movaps xmm3, xmm5
comiss xmm2, dword [0x1009635c]
mulss xmm1, xmm6
addss xmm1, xmm3
cvttss2si eax, xmm1
mov dword [esp + 0x54], eax
jb 0x10050eb0
movaps xmm1, xmm4
jmp 0x10050eb3
movaps xmm1, xmm5
comiss xmm0, dword [0x1009635c]
mulss xmm2, xmm6
addss xmm2, xmm1
cvttss2si eax, xmm2
mov dword [esp + 0x58], eax
jae 0x10050ecf
movaps xmm4, xmm5
cmp dword [esi + 0x3834], 0
mulss xmm0, xmm6
mov byte [esp + 0x16], 0
mov byte [esp + 0x17], 0
addss xmm0, xmm4
cvttss2si eax, xmm0
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x2c]
movss xmm2, dword [eax + 0xf0]
movss xmm3, dword [eax + 0xf4]
movss dword [esp + 0x30], xmm2
movss dword [esp + 0x60], xmm3
jne 0x10050f1a
movss xmm1, dword [esp + 0x70]
jmp 0x10050f1d
xorps xmm1, xmm1
movaps xmm0, xmm2
addss xmm0, xmm1
movss dword [eax + 0xf0], xmm0
test ecx, 0x300000
je 0x1005124a
test cl, 0x20
jne 0x1005124a
mov edx, dword [esp + 0x40]
movss xmm2, dword [esi + 0x37f4]
movss xmm1, dword [esp + 0x6c]
lea eax, [edx - 1]
movd xmm3, eax
cvtdq2ps xmm3, xmm3
movaps xmm0, xmm3
mulss xmm0, xmm2
subss xmm1, xmm0
movd xmm0, edx
cvtdq2ps xmm0, xmm0
divss xmm1, xmm0
cvttss2si eax, xmm1
movss xmm1, dword [0x10096464]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
maxss xmm1, xmm0
movss xmm0, dword [esp + 0x6c]
addss xmm2, xmm1
movss dword [esp + 0x18], xmm1
movss xmm1, dword [0x10096464]
mulss xmm2, xmm3
movss xmm3, dword [0x100965a8]
subss xmm0, xmm2
cvttss2si eax, xmm0
movd xmm0, eax
mov eax, ecx
and eax, 0x1000000
mov ecx, str.M:000
mov dword [esp + 0x94], eax
mov eax, str.M:0.000
cmove eax, ecx
mov ecx, dword [0x100a5ffc]
push ecx
cvtdq2ps xmm0, xmm0
push 0
push eax
lea eax, [esp + 0x8c]
push ecx
movss xmm2, dword [ecx + 0x3bd0]
mov ecx, dword [ecx + 0x3bcc]
maxss xmm1, xmm0
mov dword [esp], 0xbf800000
push eax
movss dword [esp + 0xa4], xmm1
call fcn.10041a10
movss xmm0, dword [esp + 0x80]
addss xmm0, dword [0x1009645c]
movss xmm1, dword [esp + 0x18]
mov ecx, dword [ebp + 8]
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
comiss xmm0, xmm1
jb 0x10051040
xor edi, edi
jmp 0x1005104f
mov edi, ecx
and edi, 0x200000
neg edi
sbb edi, edi
neg edi
inc edi
cmp dword [esp + 0x40], 0
mov dword [esp + 0x68], 0
jbe 0x100511fc
and ecx, 8
shl edi, 4
mov dword [esp + 0x80], ecx
mov edx, 0xff
xor ecx, ecx
test ecx, ecx
je 0x10051099
movss xmm1, dword [esi + 0x37f4]
xorps xmm0, xmm0
call fcn.1002c1d0
movss xmm1, dword [esp + 0x18]
mov edx, 0xff
mov ecx, dword [esp + 0x68]
lea eax, [ecx + 1]
cmp eax, dword [esp + 0x40]
jge 0x100510a7
movaps xmm0, xmm1
jmp 0x100510b0
movss xmm0, dword [esp + 0x90]
mov eax, dword [0x100a5ffc]
or dword [eax + 0x46a0], 1
cmp dword [esp + 0x94], 0
movss dword [eax + 0x46a4], xmm0
je 0x10051135
cmp byte [esp + 0x44], 0
je 0x100510da
xorps xmm0, xmm0
jmp 0x100510e2
movss xmm0, dword [0x10096464]
movss xmm3, dword [0x100963a8]
lea eax, [esp + 0x74]
push ecx
push dword [edi + 0x10096290]
mov edx, 8
movss dword [esp + 0x7c], xmm0
push eax
lea eax, [esp + 0x58]
mov dword [esp + 0x58], 0
push eax
lea eax, [esp + 0x2c]
lea eax, [eax + ecx*4]
mov ecx, dword [ecx*4 + 0x10096280]
push eax
call fcn.1004a8c0
mov cl, byte [esp + 0x2a]
add esp, 0x14
or cl, al
or byte [esp + 0x17], cl
mov byte [esp + 0x16], cl
jmp 0x10051184
movss xmm3, dword [0x10096464]
mov eax, edx
xor edx, edx
cmp byte [esp + 0x44], dl
push ecx
push dword [edi + 0x100962f0]
cmovne eax, edx
mov dword [esp + 0x7c], edx
mov dword [esp + 0x54], eax
mov edx, 4
lea eax, [esp + 0x54]
push eax
lea eax, [esp + 0x80]
push eax
lea eax, [esp + 0x60]
lea eax, [eax + ecx*4]
mov ecx, dword [ecx*4 + 0x10096280]
push eax
call fcn.1004a8c0
add esp, 0x14
or byte [esp + 0x16], al
cmp dword [esp + 0x80], 0
jne 0x100511d8
mov eax, dword [0x100a5ffc]
cmp byte [eax + 0x371f], 0
mov ecx, dword [eax + 0x3e40]
mov dword [esp + 0x4c], ecx
je 0x100511d8
cmp byte [eax + 0x44e8], 0
jne 0x100511d8
mov ecx, 0x20
call fcn.100211e0
test al, al
je 0x100511d8
push ecx
mov ecx, dword [esp + 0x50]
push str.context
call fcn.10020e80
mov edx, 1
mov ecx, eax
call fcn.1002cf70
mov ecx, dword [esp + 0x68]
add edi, 4
movss xmm1, dword [esp + 0x18]
inc ecx
mov edx, 0xff
mov dword [esp + 0x68], ecx
cmp ecx, dword [esp + 0x40]
jl 0x10051076
mov ecx, dword [ebp + 8]
mov edi, dword [esp + 0x3c]
mov eax, dword [esp + 0x2c]
movss xmm3, dword [esp + 0x60]
movss xmm2, dword [esp + 0x30]
mov dword [esp + 0x18], 0
test cl, 0x10
jne 0x10051620
test cl, 0x20
jne 0x10051414
cmp dword [esi + 0x3834], 0
je 0x10051414
movss xmm1, dword [esp + 0x6c]
addss xmm1, dword [esi + 0x37f4]
jmp 0x10051417
test ecx, 0x400000
je 0x10051210
test cl, 0x20
jne 0x10051210
test dl, dl
je 0x100512e7
mov eax, dword [esp + 0x5c]
mov ecx, 0xff
mov dword [esp + 0x18], ecx
test eax, eax
jns 0x1005127a
mov dword [esp + 0x44], 0
jmp 0x10051286
cmp eax, 0xff
cmovg eax, ecx
mov dword [esp + 0x44], eax
mov edx, dword [esp + 0x58]
test edx, edx
jns 0x10051292
xor edx, edx
jmp 0x10051297
cmp edx, ecx
cmovg edx, ecx
mov ecx, dword [esp + 0x54]
test ecx, ecx
jns 0x100512a3
xor ecx, ecx
jmp 0x100512b1
cmp ecx, 0xff
mov eax, 0xff
cmovg ecx, eax
mov eax, dword [esp + 0x50]
test eax, eax
jns 0x100512bd
xor eax, eax
jmp 0x100512c7
cmp eax, 0xff
cmovg eax, dword [esp + 0x18]
push dword [esp + 0x44]
push edx
push ecx
push eax
push 0x10096060
lea eax, [esp + 0xc4]
push 0x40
push eax
call fcn.1001e460
add esp, 0x1c
jmp 0x10051342
mov edx, dword [esp + 0x58]
mov eax, 0xff
mov dword [esp + 0x18], eax
test edx, edx
jns 0x100512fc
xor edx, edx
jmp 0x10051301
cmp edx, eax
cmovg edx, eax
mov ecx, dword [esp + 0x54]
test ecx, ecx
jns 0x1005130d
xor ecx, ecx
jmp 0x10051312
cmp ecx, eax
cmovg ecx, eax
mov eax, dword [esp + 0x50]
test eax, eax
jns 0x1005131e
xor eax, eax
jmp 0x10051328
cmp eax, 0xff
cmovg eax, dword [esp + 0x18]
push edx
push ecx
push eax
push 0x10096050
lea eax, [esp + 0xc0]
push 0x40
push eax
call fcn.1001e460
add esp, 0x18
mov eax, dword [0x100a5ffc]
lea edx, [esp + 0xb0]
movss xmm5, dword [esp + 0x6c]
sub esp, 0x10
or dword [eax + 0x46a0], 1
movss dword [eax + 0x46a4], xmm5
call fcn.1004bbe0
add esp, 0x10
test al, al
je 0x100513fb
mov byte [esp + 0x16], 1
lea ecx, [esp + 0xb0]
mov al, byte [ecx]
cmp al, 0x23
je 0x10051390
cmp al, 0x20
je 0x10051390
cmp al, 9
jne 0x10051393
inc ecx
jmp 0x10051382
cmp byte [esp + 0x38], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x5c], 0xff
je 0x100513de
lea eax, [esp + 0x5c]
push eax
lea eax, [esp + 0x5c]
push eax
lea eax, [esp + 0x5c]
push eax
lea eax, [esp + 0x5c]
push eax
push str._02X_02X_02X_02X
push ecx
call fcn.1001c190
add esp, 0x18
jmp 0x100513fb
lea eax, [esp + 0x58]
push eax
lea eax, [esp + 0x58]
push eax
lea eax, [esp + 0x58]
push eax
push str._02X_02X_02X
push ecx
call fcn.1001c190
add esp, 0x14
mov ecx, dword [ebp + 8]
test cl, 8
jne 0x10051200
call fcn.1002d3e0
mov ecx, dword [ebp + 8]
jmp 0x10051200
xorps xmm1, xmm1
cmp byte [esp + 0x38], 0
movaps xmm0, xmm2
addss xmm0, xmm1
movss dword [eax + 0xf4], xmm3
movss dword [eax + 0xf0], xmm0
je 0x10051440
movss xmm0, dword [edi + 0xc]
movss dword [esp + 0x48], xmm0
movss xmm0, dword [edi]
lea eax, [esp + 0x80]
movss dword [esp + 0xa0], xmm0
lea edx, [esp + 0xa0]
movss xmm0, dword [edi + 4]
movss dword [esp + 0xa4], xmm0
movss xmm0, dword [edi + 8]
push eax
movss dword [esp + 0xac], xmm0
movss xmm0, dword [esp + 0x4c]
push ecx
mov ecx, str.ColorButton
movss dword [esp + 0xb4], xmm0
mov dword [esp + 0x88], 0
mov dword [esp + 0x8c], 0
call fcn.100543c0
add esp, 8
test al, al
mov eax, dword [ebp + 8]
je 0x10051530
test al, 4
jne 0x10051530
movups xmm0, xmmword [esp + 0xa0]
mov ecx, 0x10096098
movups xmmword [esi + 0x5978], xmm0
call fcn.1002cef0
movss xmm1, dword [esi + 0x46c0]
movss xmm0, dword [esi + 0x37f0]
addss xmm0, dword [esi + 0x46cc]
mov eax, dword [0x100a5ffc]
addss xmm1, dword [0x1009635c]
or dword [eax + 0x46f0], 1
movss dword [eax + 0x4704], xmm0
movss dword [eax + 0x4700], xmm1
mov dword [eax + 0x4708], 0
mov dword [eax + 0x470c], 0
mov dword [eax + 0x46f4], 1
mov eax, dword [ebp + 8]
test al, 8
jne 0x10051539
call fcn.1002d3e0
mov ecx, 0x10096098
call fcn.1002d310
test al, al
je 0x1005161d
mov eax, dword [esi + 0x3e40]
cmp word [eax + 0xb6], 1
jne 0x10051618
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x34]
cmp ecx, eax
je 0x100515c7
push 0
mov edx, eax
call fcn.10046420
mov ecx, dword [0x100a5ffc]
add esp, 4
mov eax, dword [ecx + 0x3e40]
mov byte [eax + 0xac], 1
mov eax, dword [ecx + 0x3e40]
cmp byte [eax + 0xaf], 0
jne 0x100515c7
movss xmm1, dword [0x100965d0]
lea ecx, [esp + 0x80]
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0
call fcn.1002be40
mov eax, dword [0x100a5ffc]
mov edx, edi
movss xmm0, dword [esp + 0x98]
mov ecx, str.picker
mulss xmm0, dword [0x100964f8]
or dword [eax + 0x46a0], 1
movss dword [eax + 0x46a4], xmm0
lea eax, [esi + 0x5978]
push eax
mov eax, dword [esp + 0xa0]
and eax, 0x1f890002
or eax, 0x740080
push eax
call fcn.10051c40
add esp, 8
or byte [esp + 0x16], al
call fcn.1002d390
mov ecx, dword [ebp + 8]
mov eax, dword [esp + 0x64]
cmp eax, dword [esp + 0x34]
je 0x10051682
test cl, cl
js 0x10051682
movss xmm1, dword [esi + 0x37f4]
xorps xmm0, xmm0
call fcn.1002c1d0
test byte [ebp + 8], 0x20
je 0x1005164c
movss xmm0, dword [esp + 0x70]
jmp 0x1005165a
movss xmm0, dword [esp + 0x78]
addss xmm0, dword [esi + 0x37f4]
movss xmm1, dword [esp + 0x30]
mov eax, dword [esp + 0x2c]
addss xmm1, xmm0
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x64]
push 0
movss dword [eax + 0xf0], xmm1
call fcn.10046420
add esp, 4
cmp byte [esp + 0x16], 0
je 0x1005183c
cmp dword [esp + 0x18], 0
jne 0x1005183c
cmp byte [esp + 0x17], 0
jne 0x100516b3
movups xmm0, xmmword [esp + 0x50]
cvtdq2ps xmm0, xmm0
divps xmm0, xmmword [0x10096980]
movups xmmword [esp + 0x1c], xmm0
mov eax, dword [ebp + 8]
and eax, 0x8200000
cmp eax, 0x8200000
jne 0x10051761
movss xmm0, dword [esp + 0x1c]
lea eax, [esp + 0x24]
movss xmm1, dword [esp + 0x20]
lea edx, [esp + 0x20]
movss xmm2, dword [esp + 0x24]
lea ecx, [esp + 0x1c]
push eax
movss dword [esi + 0x596c], xmm0
movss dword [esi + 0x5970], xmm1
call fcn.1001efd0
movss xmm0, dword [esp + 0x28]
lea ecx, [esp + 0x84]
mov eax, dword [esi + 0x5964]
add esp, 4
movss xmm6, dword [esp + 0x1c]
movss xmm7, dword [esp + 0x20]
mov dword [esi + 0x5968], eax
movss dword [esp + 0x80], xmm6
movss dword [esp + 0x84], xmm7
movss dword [esp + 0x78], xmm0
movss dword [esp + 0x88], xmm0
mov dword [esp + 0x8c], 0
call fcn.1001ee90
movss xmm1, dword [esp + 0x78]
mov dword [esi + 0x5974], eax
jmp 0x10051773
movss xmm1, dword [esp + 0x24]
movss xmm7, dword [esp + 0x20]
movss xmm6, dword [esp + 0x1c]
mov eax, dword [ebp + 8]
and eax, 0x10100000
cmp eax, 0x10100000
jne 0x1005181c
movaps xmm2, xmm6
movaps xmm6, xmm7
movaps xmm0, xmm6
movaps xmm3, xmm2
comiss xmm1, xmm0
jbe 0x100517a7
movss xmm4, dword [0x100965d0]
movaps xmm6, xmm1
movaps xmm1, xmm0
jmp 0x100517aa
xorps xmm4, xmm4
comiss xmm6, xmm3
jbe 0x100517c4
movss xmm0, dword [0x100965bc]
movaps xmm2, xmm6
subss xmm0, xmm4
movaps xmm6, xmm3
movaps xmm4, xmm0
movaps xmm0, xmm6
movaps xmm7, xmm2
minss xmm0, xmm1
subss xmm6, xmm1
movaps xmm1, xmm2
movss dword [esp + 0x24], xmm1
subss xmm7, xmm0
movaps xmm0, xmm7
mulss xmm0, dword [0x100964e8]
addss xmm0, dword [0x1009636c]
divss xmm6, xmm0
movaps xmm0, xmm2
addss xmm0, dword [0x1009636c]
addss xmm6, xmm4
divss xmm7, xmm0
andps xmm6, xmmword [0x100969a0]
movss dword [esp + 0x1c], xmm6
movss dword [esp + 0x20], xmm7
cmp byte [esp + 0x38], 0
movss dword [edi], xmm6
movss dword [edi + 4], xmm7
movss dword [edi + 8], xmm1
je 0x1005183c
movss xmm0, dword [esp + 0x28]
movss dword [edi + 0xc], xmm0
cmp dword [esp + 0x7c], 0
jne 0x1005184d
mov dword [esi + 0x5964], 0
mov eax, dword [0x100a5ffc]
mov eax, dword [eax + 0x3e40]
dec dword [eax + 0xe4]
call fcn.1002c590
test byte [esi + 0x46bc], 1
je 0x100519d9
test dword [ebp + 8], 0x200
jne 0x100519d9
mov edi, dword [0x100a5ffc]
cmp byte [edi + 0x4944], 0
je 0x100519d9
mov ecx, dword [edi + 0x46bc]
mov edx, dword [edi + 0x3e40]
test cl, 1
je 0x100519d9
mov eax, dword [edi + 0x3e48]
mov dword [esp + 0x7c], eax
test eax, eax
je 0x100519d9
mov edi, dword [esp + 0x7c]
mov eax, dword [edx + 0x300]
cmp eax, dword [edi + 0x300]
mov edi, dword [0x100a5ffc]
jne 0x100519d9
cmp byte [edx + 0xaf], 0
jne 0x100519d9
lea eax, [edi + 0x46e0]
test cl, 2
jne 0x100518f1
lea eax, [edi + 0x46c0]
mov ecx, dword [edi + 0x46b4]
mov dword [esp + 0x48], eax
test ecx, ecx
jne 0x1005190e
push eax
mov ecx, edx
call fcn.10020f40
mov ecx, eax
call fcn.10021150
cmp dword [edi + 0x495c], ecx
je 0x100519d9
mov eax, dword [esp + 0x48]
mov byte [esp + 0x17], 0
movups xmm0, xmmword [eax]
mov dword [edi + 0x499c], ecx
mov ecx, str._COL3F
mov byte [edi + 0x4946], 1
movups xmmword [edi + 0x498c], xmm0
call fcn.100315d0
mov edi, dword [esp + 0x3c]
test eax, eax
je 0x10051966
mov eax, dword [eax]
mov byte [esp + 0x17], 1
mov byte [esp + 0x16], 1
movq xmm0, qword [eax]
movq qword [edi], xmm0
mov eax, dword [eax + 8]
mov dword [edi + 8], eax
mov ecx, str._COL4F
call fcn.100315d0
mov ecx, eax
test ecx, ecx
je 0x10051990
mov eax, dword [esp + 0x40]
shl eax, 2
push eax
push dword [ecx]
push edi
call fcn.1005ef80
add esp, 0xc
mov byte [esp + 0x16], 1
jmp 0x10051997
cmp byte [esp + 0x17], 0
je 0x100519bf
test dword [ebp + 8], 0x10000000
je 0x100519bf
movss xmm2, dword [edi + 8]
lea eax, [edi + 8]
movss xmm1, dword [edi + 4]
lea edx, [edi + 4]
movss xmm0, dword [edi]
mov ecx, edi
push eax
call fcn.1001ef40
add esp, 4
mov eax, dword [0x100a5ffc]
cmp byte [eax + 0x498a], 0
mov byte [eax + 0x4946], 0
je 0x100519d9
call fcn.10031460
mov ecx, dword [esp + 0x18]
test ecx, ecx
je 0x100519f9
mov eax, dword [esi + 0x3e8c]
test eax, eax
je 0x100519f9
cmp dword [esi + 0x3ea8], ecx
jne 0x100519f9
mov dword [esi + 0x46b4], eax
mov al, byte [esp + 0x16]
test al, al
je 0x10051a20
cmp dword [esi + 0x46b4], 0
je 0x10051a20
mov ecx, dword [0x100a5ffc]
or dword [ecx + 0x46bc], 4
mov word [ecx + 0x3e9c], 0x101
pop edi
pop esi
mov esp, ebp
pop ebp
ret