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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x118
mov eax, dword [0x10077008]
xor eax, esp
mov dword [esp + 0x114], eax
push esi
mov esi, dword [0x10077088]
push edi
mov edi, ecx
mov dword [esp + 0x28], edx
mov ecx, dword [ebp + 8]
mov eax, dword [esi + 0x176c]
mov dword [esp + 0x34], edi
mov dword [esp + 0x18], ecx
mov dword [esp + 0x24], esi
mov byte [eax + 0x8a], 1
mov eax, dword [esi + 0x176c]
mov dword [esp + 0x64], eax
cmp byte [eax + 0x8c], 0
je 0x10042e4d
xor al, al
pop edi
pop esi
mov ecx, dword [esp + 0x114]
xor ecx, esp
call fcn.100671ce
mov esp, ebp
pop ebp
ret
movss xmm0, dword [esi + 0x141c]
addss xmm0, xmm0
addss xmm0, dword [esi + 0x171c]
movss dword [esp + 0x68], xmm0
test cl, 0x10
je 0x10042e71
xorps xmm4, xmm4
jmp 0x10042e7d
movss xmm4, dword [esi + 0x1430]
addss xmm4, xmm0
call fcn.1003a200
mov dword [esp + 0x5c], edi
subss xmm0, xmm4
movss dword [esp + 0x30], xmm0
cmp edi, 0xffffffff
jae 0x10042eae
mov al, byte [edi]
test al, al
je 0x10042eaa
cmp al, 0x23
jne 0x10042ea4
cmp byte [edi + 1], al
je 0x10042eaa
inc edi
cmp edi, 0xffffffff
jb 0x10042e95
mov dword [esp + 0x5c], edi
mov ecx, dword [esp + 0x18]
mov edx, ecx
shr edx, 1
mov eax, ecx
shr eax, 0xc
not dl
and eax, 0xffffff01
mov dword [esp + 0x6c], ecx
and edx, 0xffffff01
mov dword [esp + 0x58], eax
movzx eax, dl
add eax, 3
mov dword [esp + 0x38], edx
mov dword [esp + 0x40], eax
call fcn.10046400
mov ecx, dword [esp + 0x34]
call fcn.1003b400
mov ecx, dword [esp + 0x18]
test cl, 0x20
je 0x10042f05
and ecx, 0xffff3fff
or ecx, 0x2008
mov dword [esp + 0x18], ecx
test cl, 8
jne 0x10042f19
mov edx, ecx
mov ecx, dword [esp + 0x28]
call fcn.10042790
mov ecx, dword [esp + 0x18]
test ecx, 0xe000
jne 0x10042f2e
mov eax, dword [esi + 0x2794]
and eax, 0xe000
or ecx, eax
test ecx, 0x30000
jne 0x10042f43
mov eax, dword [esi + 0x2794]
and eax, 0x30000
or ecx, eax
test ecx, 0xc0000
jne 0x10042f58
mov eax, dword [esi + 0x2794]
and eax, 0xc0000
or ecx, eax
mov eax, dword [esi + 0x2794]
and eax, 0xfff01fff
or ecx, eax
cmp byte [esp + 0x38], 0
mov eax, dword [esp + 0x28]
mov dword [esp + 0x18], ecx
movss xmm0, dword [eax]
movss xmm3, dword [eax + 4]
movss xmm6, dword [eax + 8]
movss dword [esp + 0x44], xmm0
movss dword [esp + 0x70], xmm0
movss dword [esp + 0x3c], xmm3
movss dword [esp + 0x74], xmm3
movss dword [esp + 0x2c], xmm6
movss dword [esp + 0x78], xmm6
je 0x10042fad
movss xmm1, dword [eax + 0xc]
jmp 0x10042fb5
movss xmm1, dword [0x10070e90]
mov eax, ecx
movss dword [esp + 0x7c], xmm1
and eax, 0x4000
movss dword [esp + 0x48], xmm1
mov dword [esp + 0x60], eax
xorps xmm4, xmm4
je 0x10043082
comiss xmm6, xmm3
movaps xmm7, xmm0
movaps xmm2, xmm3
xorps xmm5, xmm5
jbe 0x10042ff1
movss xmm5, dword [0x10070f9c]
movaps xmm2, xmm6
movaps xmm6, xmm3
comiss xmm2, xmm0
jbe 0x1004300b
movaps xmm7, xmm2
movaps xmm2, xmm0
movss xmm0, dword [0x10070f88]
subss xmm0, xmm5
movaps xmm5, xmm0
movaps xmm0, xmm2
movss dword [esp + 0x2c], xmm7
minss xmm0, xmm6
movaps xmm3, xmm7
subss xmm2, xmm6
movaps xmm6, xmm7
movss dword [esp + 0x78], xmm6
subss xmm3, xmm0
movaps xmm0, xmm3
mulss xmm0, dword [0x10070ee8]
addss xmm0, dword [0x10070d98]
divss xmm2, xmm0
addss xmm2, xmm5
cvtps2pd xmm0, xmm2
andps xmm0, xmmword [0x100719b0]
cvtpd2ps xmm0, xmm0
movss dword [esp + 0x44], xmm0
movss dword [esp + 0x70], xmm0
movaps xmm0, xmm7
addss xmm0, dword [0x10070d98]
divss xmm3, xmm0
movss xmm0, dword [esp + 0x44]
movss dword [esp + 0x3c], xmm3
movss dword [esp + 0x74], xmm3
comiss xmm0, xmm4
movss xmm2, dword [0x10070f8c]
movss xmm1, dword [0x10070e5c]
jb 0x1004309c
movaps xmm7, xmm1
jmp 0x1004309f
movaps xmm7, xmm2
comiss xmm3, xmm4
movss xmm5, dword [0x10070f58]
mulss xmm0, xmm5
addss xmm0, xmm7
cvttss2si eax, xmm0
mov dword [esp + 0x1c], eax
mov dword [esp + 0x98], eax
jb 0x100430c8
movaps xmm7, xmm1
jmp 0x100430cb
movaps xmm7, xmm2
comiss xmm6, xmm4
movaps xmm0, xmm3
mulss xmm0, xmm5
addss xmm0, xmm7
cvttss2si esi, xmm0
mov dword [esp + 0x9c], esi
jb 0x100430eb
movaps xmm3, xmm1
jmp 0x100430ee
movaps xmm3, xmm2
movaps xmm0, xmm6
mulss xmm0, xmm5
addss xmm0, xmm3
cvttss2si edx, xmm0
movss xmm0, dword [esp + 0x48]
comiss xmm0, xmm4
mov dword [esp + 0xa0], edx
jae 0x10043112
movaps xmm1, xmm2
mulss xmm0, xmm5
mov byte [esp + 0x17], 0
mov byte [esp + 0x23], 0
addss xmm0, xmm1
cvttss2si eax, xmm0
mov dword [esp + 0x50], eax
mov dword [esp + 0xa4], eax
test ecx, 0x6000
je 0x10043620
test cl, 0x20
jne 0x10043620
mov edx, dword [esp + 0x40]
movss xmm5, dword [esp + 0x30]
movaps xmm1, xmm5
lea eax, [edx - 1]
movd xmm3, eax
mov eax, dword [esp + 0x24]
cvtdq2ps xmm3, xmm3
movss xmm2, dword [eax + 0x1430]
movaps xmm0, xmm3
mulss xmm0, xmm2
subss xmm1, xmm0
movd xmm0, edx
cvtdq2ps xmm0, xmm0
divss xmm1, xmm0
cvttss2si eax, xmm1
movss xmm1, dword [0x10070e90]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
maxss xmm1, xmm0
addss xmm2, xmm1
movss dword [esp + 0x1c], xmm1
mulss xmm2, xmm3
subss xmm5, xmm2
movss xmm2, dword [0x10070e90]
cvttss2si eax, xmm5
movd xmm0, eax
mov eax, ecx
and eax, 0x20000
mov ecx, str.M:0.000
cvtdq2ps xmm0, xmm0
mov dword [esp + 0x50], eax
mov eax, str.M:000
cmove ecx, eax
mov eax, dword [0x10077088]
mov esi, dword [eax + 0x1718]
maxss xmm2, xmm0
movss xmm0, dword [eax + 0x171c]
xor al, al
movss dword [esp + 0x30], xmm0
movss dword [esp + 0x4c], xmm2
jne 0x1004326c
movss xmm3, dword [0x10070f80]
lea eax, [esp + 0x80]
push ecx
push 0
push ecx
push ecx
mov dword [esp], 0xbf800000
movaps xmm2, xmm0
push eax
mov ecx, esi
call fcn.100548f0
movss xmm0, dword [esp + 0x80]
xorps xmm1, xmm1
comiss xmm0, xmm1
jbe 0x10043241
movss xmm1, dword [esp + 0x30]
divss xmm1, dword [esi]
subss xmm0, xmm1
addss xmm0, dword [0x10070e84]
movss xmm1, dword [esp + 0x1c]
cvttss2si eax, xmm0
movss xmm0, dword [esp + 0x84]
movss dword [esp + 0x84], xmm0
movd xmm4, eax
cvtdq2ps xmm4, xmm4
xor eax, eax
mov dword [esp + 0x80], 0x10070250
comiss xmm4, xmm1
mov dword [esp + 0x84], 0x10070254
mov dword [esp + 0x88], 0x10070258
mov dword [esp + 0x8c], 0x1007025c
mov dword [esp + 0xd8], str._3.0f
mov dword [esp + 0xdc], str._3.0f
mov dword [esp + 0xe0], str._3.0f
mov dword [esp + 0xe4], str._3.0f
mov dword [esp + 0xe8], str.R:_3.0f
mov dword [esp + 0xec], str.G:_3.0f
mov dword [esp + 0xf0], str.B:_3.0f
mov dword [esp + 0xf4], str.A:_3.0f
mov dword [esp + 0xf8], str.H:_3.0f
mov dword [esp + 0xfc], str.S:_3.0f
mov dword [esp + 0x100], str.V:_3.0f
mov dword [esp + 0x104], str.A:_3.0f
mov dword [esp + 0xa8], str._0.3f
mov dword [esp + 0xac], str._0.3f
mov dword [esp + 0xb0], str._0.3f
mov dword [esp + 0xb4], str._0.3f
mov dword [esp + 0xb8], str.R:_0.3f
mov dword [esp + 0xbc], str.G:_0.3f
mov dword [esp + 0xc0], str.B:_0.3f
mov dword [esp + 0xc4], str.A:_0.3f
mov dword [esp + 0xc8], str.H:_0.3f
mov dword [esp + 0xcc], str.S:_0.3f
mov dword [esp + 0xd0], str.V:_0.3f
mov dword [esp + 0xd4], str.A:_0.3f
jae 0x100433af
cmp dword [esp + 0x60], eax
setne al
inc eax
movaps xmm0, xmm1
mov dword [esp + 0x1c], eax
call fcn.1003a120
xor esi, esi
cmp dword [esp + 0x40], esi
jbe 0x10043578
mov eax, dword [esp + 0x18]
mov edi, 0xff
and eax, 8
shl dword [esp + 0x1c], 4
mov dword [esp + 0x30], eax
nop dword [eax]
test esi, esi
jle 0x100433f8
mov eax, dword [esp + 0x24]
xorps xmm0, xmm0
movss xmm1, dword [eax + 0x1430]
call fcn.100466a0
lea eax, [esi + 1]
mov dword [esp + 0x3c], eax
cmp eax, dword [esp + 0x40]
jne 0x10043410
movss xmm0, dword [esp + 0x4c]
call fcn.1003a120
cmp dword [esp + 0x50], 0
je 0x10043473
cmp byte [esp + 0x58], 0
je 0x10043423
xorps xmm0, xmm0
jmp 0x1004342b
movss xmm0, dword [0x10070e90]
mov eax, dword [esp + 0x1c]
lea edx, [esp + 0x70]
movss xmm2, dword [0x10070db4]
lea edx, [edx + esi*4]
push ecx
mov dword [esp], 0x3f800000
xorps xmm3, xmm3
push dword [esp + eax + 0xac]
push ecx
mov ecx, dword [esp + esi*4 + 0x8c]
movss dword [esp], xmm0
call fcn.1003c540
add esp, 0xc
or al, byte [esp + 0x17]
mov byte [esp + 0x23], al
mov byte [esp + 0x17], al
jmp 0x100434ec
mov eax, dword [esp + 0x1c]
lea edx, [esp + 0x2c]
movd xmm0, dword [esp + esi*4 + 0x98]
mov ecx, str._.0f
movss xmm2, dword [0x10070e90]
xorps xmm3, xmm3
cvtdq2ps xmm0, xmm0
mov eax, dword [esp + eax + 0xd8]
test eax, eax
cmovne ecx, eax
mov eax, edi
push ecx
mov dword [esp], 0x3f800000
push ecx
xor ecx, ecx
movss dword [esp + 0x34], xmm0
cmp byte [esp + 0x60], cl
push ecx
cmovne eax, ecx
mov ecx, dword [esp + esi*4 + 0x8c]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [esp], xmm0
call fcn.1003c540
mov cl, al
add esp, 0xc
cvttss2si eax, dword [esp + 0x2c]
or byte [esp + 0x17], cl
mov dword [esp + esi*4 + 0x98], eax
cmp dword [esp + 0x30], 0
jne 0x10043531
mov eax, dword [0x10077088]
xorps xmm1, xmm1
movss xmm0, dword [eax + 0x384]
mov esi, dword [eax + 0x176c]
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jp 0x10043531
call fcn.10032950
test al, al
je 0x10043531
push ecx
push str.context
mov ecx, esi
call fcn.100325a0
mov dl, 1
mov ecx, eax
call fcn.10035e30
mov esi, dword [esp + 0x3c]
add dword [esp + 0x1c], 4
cmp esi, dword [esp + 0x40]
jl 0x100433e0
movss xmm0, dword [esp + 0x7c]
mov edi, dword [esp + 0x5c]
movss dword [esp + 0x48], xmm0
movss xmm0, dword [esp + 0x78]
movss dword [esp + 0x2c], xmm0
movss xmm0, dword [esp + 0x74]
movss dword [esp + 0x3c], xmm0
movss xmm0, dword [esp + 0x70]
movss dword [esp + 0x44], xmm0
mov ecx, dword [0x10077088]
mov eax, dword [ecx + 0x176c]
mov byte [eax + 0x8a], 1
mov edx, dword [ecx + 0x176c]
dec dword [edx + 0x14c]
cmp dword [edx + 0x14c], 0
jne 0x100435aa
movss xmm0, dword [edx + 0x208]
jmp 0x100435bc
mov ecx, dword [edx + 0x14c]
mov eax, dword [edx + 0x154]
movss xmm0, dword [eax + ecx*4 - 4]
mov ecx, dword [0x10077088]
movss dword [edx + 0x138], xmm0
mov eax, dword [ecx + 0x176c]
mov byte [eax + 0x8a], 1
mov edx, dword [ecx + 0x176c]
dec dword [edx + 0x14c]
cmp dword [edx + 0x14c], 0
jne 0x10043601
movss xmm0, dword [edx + 0x208]
movss dword [edx + 0x138], xmm0
jmp 0x100437f6
mov ecx, dword [edx + 0x14c]
mov eax, dword [edx + 0x154]
movss xmm0, dword [eax + ecx*4 - 4]
movss dword [edx + 0x138], xmm0
jmp 0x100437f6
mov eax, ecx
and eax, 0x8020
cmp eax, 0x8000
jne 0x100437fa
cmp byte [esp + 0x38], 0
je 0x100436a0
mov ecx, dword [esp + 0x50]
mov eax, 0xff
mov dword [esp + 0x4c], eax
test ecx, ecx
jns 0x1004364e
xor ecx, ecx
jmp 0x10043653
cmp ecx, eax
cmovg ecx, eax
test edx, edx
jns 0x1004365b
xor edx, edx
jmp 0x10043660
cmp edx, eax
cmovg edx, eax
test esi, esi
jns 0x10043668
xor esi, esi
jmp 0x1004366d
cmp esi, eax
cmovg esi, eax
mov eax, dword [esp + 0x1c]
test eax, eax
jns 0x10043679
xor eax, eax
jmp 0x10043683
cmp eax, 0xff
cmovg eax, dword [esp + 0x4c]
push ecx
push edx
push esi
push eax
push 0x100702e0
lea eax, [esp + 0xec]
push 0x40
push eax
call fcn.10030ea0
add esp, 0x1c
jmp 0x100436ed
mov ecx, 0xff
test edx, edx
jns 0x100436ad
xor edx, edx
jmp 0x100436b2
cmp edx, ecx
cmovg edx, ecx
test esi, esi
jns 0x100436ba
xor esi, esi
jmp 0x100436bf
cmp esi, ecx
cmovg esi, ecx
mov eax, dword [esp + 0x1c]
test eax, eax
jns 0x100436cb
xor eax, eax
jmp 0x100436d3
cmp eax, 0xff
cmovg eax, ecx
push edx
push esi
push eax
push 0x100702f4
lea eax, [esp + 0xe8]
push 0x40
push eax
call fcn.10030ea0
add esp, 0x18
movss xmm0, dword [esp + 0x30]
call fcn.1003a120
sub esp, 8
mov dword [esp + 0x88], 0
lea eax, [esp + 0x88]
mov dword [esp + 0x8c], 0
lea edx, [esp + 0xe0]
mov ecx, str.Text
push 6
push eax
push 0x40
call fcn.1003e8e0
add esp, 0x14
test al, al
je 0x100437e5
mov byte [esp + 0x17], 1
lea eax, [esp + 0xd8]
mov cl, byte [eax]
cmp cl, 0x23
je 0x10043759
movsx ecx, cl
cmp ecx, 0x20
je 0x10043759
cmp ecx, 9
jne 0x1004375c
inc eax
jmp 0x10043745
cmp byte [esp + 0x38], 0
mov dword [esp + 0xa4], 0
mov dword [esp + 0xa0], 0
mov dword [esp + 0x9c], 0
mov dword [esp + 0x98], 0
je 0x100437bf
lea ecx, [esp + 0xa4]
push ecx
lea ecx, [esp + 0xa4]
push ecx
lea ecx, [esp + 0xa4]
push ecx
lea ecx, [esp + 0xa4]
push ecx
push str._02X_02X_02X_02X
push eax
call fcn.1002f780
add esp, 0x18
jmp 0x100437e5
lea ecx, [esp + 0xa0]
push ecx
lea ecx, [esp + 0xa0]
push ecx
lea ecx, [esp + 0xa0]
push ecx
push str._02X_02X_02X
push eax
call fcn.1002f780
add esp, 0x14
test byte [esp + 0x18], 8
jne 0x100437f1
call fcn.10036490
call fcn.1003a1a0
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x24]
mov byte [esp + 0x22], 0
test cl, 0x10
jne 0x100439df
test cl, 0x20
jne 0x10043825
movss xmm1, dword [esi + 0x1430]
xorps xmm0, xmm0
call fcn.100466a0
mov ecx, dword [esp + 0x18]
cmp byte [esp + 0x38], 0
mov eax, dword [esp + 0x28]
je 0x10043837
movss xmm1, dword [eax + 0xc]
jmp 0x1004383f
movss xmm1, dword [0x10070e90]
movss xmm0, dword [eax]
lea edx, [esp + 0x80]
mov dword [esp + 0x54], 0
push dword [esp + 0x54]
movss dword [esp + 0x84], xmm0
movss xmm0, dword [eax + 4]
mov dword [esp + 0x54], 0
push dword [esp + 0x54]
movss dword [esp + 0x8c], xmm0
movss xmm0, dword [eax + 8]
push ecx
mov ecx, str.ColorButton
movss dword [esp + 0x94], xmm0
movss dword [esp + 0x98], xmm1
call fcn.10042370
add esp, 0xc
test al, al
je 0x1004391b
test byte [esp + 0x18], 4
jne 0x1004391b
movups xmm0, xmmword [esp + 0x80]
mov ecx, 0x10070340
movups xmmword [esi + 0x2798], xmm0
call fcn.10035fa0
mov eax, dword [esp + 0x64]
movss xmm1, dword [esi + 0x142c]
movss xmm0, dword [eax + 0x108]
addss xmm1, dword [eax + 0x114]
mov eax, dword [0x10077088]
subss xmm0, dword [0x10070e90]
movss dword [eax + 0x1800], xmm1
mov dword [eax + 0x1804], 0
movss dword [eax + 0x17fc], xmm0
mov dword [eax + 0x1808], 0
mov dword [eax + 0x1820], 1
jmp 0x10043920
mov eax, dword [0x10077088]
test byte [esp + 0x18], 8
jne 0x10043960
movss xmm0, dword [eax + 0x384]
xorps xmm1, xmm1
mov esi, dword [eax + 0x176c]
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jp 0x10043960
call fcn.10032950
test al, al
je 0x10043960
push ecx
push str.context
mov ecx, esi
call fcn.100325a0
mov dl, 1
mov ecx, eax
call fcn.10035e30
mov ecx, 0x10070340
call fcn.100362d0
test al, al
je 0x100439d7
mov eax, dword [esp + 0x34]
mov byte [esp + 0x22], 1
cmp eax, edi
je 0x10043989
mov edx, edi
mov ecx, eax
call fcn.1003a790
call fcn.100460f0
movss xmm0, dword [esp + 0x68]
mulss xmm0, dword [0x10070f00]
call fcn.1003a120
mov esi, dword [esp + 0x24]
mov ecx, str.picker
mov edx, dword [esp + 0x28]
lea eax, [esi + 0x2798]
push eax
mov eax, dword [esp + 0x70]
and eax, 0xf1202
or eax, 0xe880
push eax
call fcn.10043cb0
or byte [esp + 0x1f], al
add esp, 8
call fcn.1003a1a0
call fcn.100397f0
jmp 0x100439db
mov esi, dword [esp + 0x24]
mov ecx, dword [esp + 0x18]
cmp dword [esp + 0x34], edi
je 0x10043a04
test cl, cl
js 0x10043a04
movss xmm1, dword [esi + 0x1430]
xorps xmm0, xmm0
call fcn.100466a0
mov ecx, dword [esp + 0x34]
mov edx, edi
call fcn.1003a790
cmp byte [esp + 0x22], 0
jne 0x10043acd
cmp byte [esp + 0x23], 0
jne 0x10043a50
movups xmm0, xmmword [esp + 0x98]
cvtdq2ps xmm0, xmm0
divps xmm0, xmmword [0x100716a0]
movups xmmword [esp + 0x70], xmm0
movss xmm2, dword [esp + 0x7c]
movss xmm1, dword [esp + 0x78]
movss xmm0, dword [esp + 0x74]
movss xmm3, dword [esp + 0x70]
jmp 0x10043a68
movss xmm0, dword [esp + 0x3c]
movss xmm1, dword [esp + 0x2c]
movss xmm3, dword [esp + 0x44]
movss xmm2, dword [esp + 0x48]
cmp dword [esp + 0x60], 0
je 0x10043aa8
lea eax, [esp + 0x78]
movaps xmm2, xmm1
movaps xmm1, xmm0
lea edx, [esp + 0x74]
push eax
lea ecx, [esp + 0x74]
movaps xmm0, xmm3
call fcn.100315e0
movss xmm2, dword [esp + 0x80]
add esp, 4
movss xmm1, dword [esp + 0x78]
movss xmm0, dword [esp + 0x74]
movss xmm3, dword [esp + 0x70]
cmp byte [esp + 0x17], 0
je 0x10043acd
cmp byte [esp + 0x38], 0
mov eax, dword [esp + 0x28]
movss dword [eax], xmm3
movss dword [eax + 4], xmm0
movss dword [eax + 8], xmm1
je 0x10043acd
movss dword [eax + 0xc], xmm2
mov ecx, dword [0x10077088]
mov ecx, dword [ecx + 0x176c]
dec dword [ecx + 0x1c8]
call fcn.10046510
mov ecx, dword [esp + 0x11c]
mov al, byte [esp + 0x17]
pop edi
pop esi
xor ecx, esp
call fcn.100671ce
mov esp, ebp
pop ebp
ret