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

Disassembly:
sub esp, 0xe0
mov eax, dword [0x10114380]
xor eax, esp
mov dword [esp + 0xdc], eax
mov ecx, dword [0x10114fd8]
xor edx, edx
mov eax, dword [esp + 0xe4]
inc edx
mov dword [esp + 0x20], eax
push ebx
mov eax, dword [ecx + 0x3e40]
mov ebx, dword [esp + 0xf0]
push esi
push edi
mov edi, dword [esp + 0xf4]
mov byte [eax + 0xac], dl
mov esi, dword [ecx + 0x3e40]
mov dword [esp + 0x28], edi
mov dword [esp + 0x68], esi
cmp byte [esi + 0xaf], 0
je 0x100556f7
xor al, al
jmp 0x10056425
push ebp
mov ebp, dword [0x10114fd8]
call fcn.1000bdb5
fstp dword [esp + 0x64]
call fcn.1000b540
fstp dword [esp + 0x68]
test bl, 0x10
je 0x1005571a
xorps xmm0, xmm0
jmp 0x10055728
movss xmm0, dword [esp + 0x64]
addss xmm0, dword [ebp + 0x37f4]
movss xmm1, dword [esp + 0x68]
subss xmm1, xmm0
movss dword [esp + 0x4c], xmm0
push 0
push dword [esp + 0x34]
movss dword [esp + 0x50], xmm1
call fcn.1001634b
and dword [ebp + 0x46a0], 0
mov dword [esp + 0x58], eax
call fcn.1000b8b1
push dword [esp + 0x38]
call fcn.1000bde7
mov eax, dword [ebp + 0x5964]
add esp, 0xc
mov dword [esp + 0x88], eax
test eax, eax
jne 0x1005578c
mov ecx, dword [esi + 0xe4]
mov eax, dword [esi + 0xec]
mov eax, dword [eax + ecx*4 - 4]
mov dword [ebp + 0x5964], eax
mov dword [esp + 0x80], ebx
test ebx, 0x20
je 0x100557a7
and ebx, 0xff9fffff
or ebx, 0x100008
test bl, 8
jne 0x100557b5
push ebx
push edi
call fcn.10063ba2
pop ecx
pop ecx
mov ecx, dword [ebp + 0x5960]
mov edx, 0x700000
test edx, ebx
jne 0x100557ca
mov eax, ecx
and eax, edx
or ebx, eax
mov edx, 0x1800000
test edx, ebx
jne 0x100557d9
mov eax, ecx
and eax, edx
or ebx, eax
mov edx, 0x6000000
test edx, ebx
jne 0x100557e8
mov eax, ecx
and eax, edx
or ebx, eax
mov edx, 0x18000000
test edx, ebx
jne 0x100557f7
mov eax, ecx
and eax, edx
or ebx, eax
movss xmm1, dword [edi]
and ecx, 0xe00fffff
movss xmm2, dword [edi + 4]
or ebx, ecx
movss xmm3, dword [edi + 8]
mov edx, ebx
movss xmm0, dword [0x100bd4f4]
xor ecx, ecx
shr edx, 1
inc ecx
mov eax, ebx
mov dword [esp + 0x58], ebx
shr eax, 0x13
not dl
and al, cl
movss dword [esp + 0x8c], xmm1
and dl, cl
mov dword [esp + 0x3c], eax
movzx eax, dl
add eax, 3
mov dword [esp + 0x34], edx
mov dword [esp + 0x24], eax
movss dword [esp + 0x90], xmm2
movss dword [esp + 0x94], xmm3
movss dword [esp + 0x5c], xmm0
test dl, dl
je 0x10055867
movss xmm0, dword [edi + 0xc]
mov eax, ebx
movss dword [esp + 0x98], xmm0
and eax, 0x10100000
mov ecx, 0x8200000
mov dword [esp + 0x84], eax
cmp eax, 0x10100000
jne 0x100558c0
lea eax, [esp + 0x94]
push eax
lea eax, [esp + 0x94]
push eax
lea eax, [esp + 0x94]
push eax
sub esp, 0xc
movss dword [esp + 8], xmm3
movss dword [esp + 4], xmm2
movss dword [esp], xmm1
call fcn.1000d90d
add esp, 0x18
jmp 0x1005591a
mov eax, ebx
and eax, ecx
cmp eax, ecx
jne 0x10055942
lea eax, [esp + 0x94]
push eax
lea eax, [esp + 0x94]
push eax
lea eax, [esp + 0x94]
push eax
sub esp, 0xc
movss dword [esp + 8], xmm3
movss dword [esp + 4], xmm2
movss dword [esp], xmm1
call fcn.1000d867
lea eax, [esp + 0xac]
push eax
lea eax, [esp + 0xac]
push eax
lea eax, [esp + 0xac]
push eax
push edi
call fcn.1006c86e
add esp, 0x28
mov edx, dword [esp + 0x34]
movss xmm1, dword [esp + 0x8c]
movss xmm2, dword [esp + 0x90]
movss xmm3, dword [esp + 0x94]
movss xmm0, dword [esp + 0x98]
comiss xmm1, dword [0x100bd4e8]
movss xmm5, dword [0x100cea8c]
movss xmm4, dword [0x100bd4f0]
jb 0x10055960
movaps xmm7, xmm4
jmp 0x10055963
movaps xmm7, xmm5
comiss xmm2, dword [0x100bd4e8]
movss xmm6, dword [0x100c0f6c]
mulss xmm1, xmm6
addss xmm1, xmm7
cvttss2si eax, xmm1
mov dword [esp + 0x9c], eax
jb 0x1005598c
movaps xmm1, xmm4
jmp 0x1005598f
movaps xmm1, xmm5
comiss xmm3, dword [0x100bd4e8]
mulss xmm2, xmm6
addss xmm2, xmm1
cvttss2si eax, xmm2
mov dword [esp + 0xa0], eax
jb 0x100559b0
movaps xmm1, xmm4
jmp 0x100559b3
movaps xmm1, xmm5
comiss xmm0, dword [0x100bd4e8]
mulss xmm3, xmm6
addss xmm3, xmm1
cvttss2si eax, xmm3
mov dword [esp + 0xa4], eax
jae 0x100559d2
movaps xmm4, xmm5
mulss xmm0, xmm6
addss xmm0, xmm4
cvttss2si eax, xmm0
mov dword [esp + 0xa8], eax
xor eax, eax
movss xmm2, dword [esi + 0xf0]
movss xmm3, dword [esi + 0xf4]
mov byte [esp + 0x12], al
mov byte [esp + 0x13], al
movss dword [esp + 0x38], xmm2
movss dword [esp + 0x28], xmm3
cmp dword [ebp + 0x3834], eax
jne 0x10055a1b
movss xmm1, dword [esp + 0x4c]
jmp 0x10055a1e
xorps xmm1, xmm1
movaps xmm0, xmm2
mov ecx, ebx
addss xmm0, xmm1
and ecx, 0x20
mov dword [esp + 0x44], ecx
movss dword [esi + 0xf0], xmm0
test ebx, 0x300000
je 0x10055d03
test ecx, ecx
jne 0x10055d03
mov ecx, dword [esp + 0x24]
mov edx, str.M:000
movss xmm2, dword [ebp + 0x37f4]
movss xmm1, dword [esp + 0x48]
movaps xmm0, xmm2
lea eax, [ecx - 1]
movd xmm3, eax
cvtdq2ps xmm3, xmm3
mulss xmm0, xmm3
subss xmm1, xmm0
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
mov ecx, ebx
and ecx, 0x1000000
push ecx
mov dword [esp], 0xbf800000
push 0
divss xmm1, xmm0
push 0
mov dword [esp + 0x2c], ecx
cvttss2si eax, xmm1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
maxss xmm0, dword [0x100bd4f4]
addss xmm2, xmm0
movss dword [esp + 0x20], xmm0
movss xmm0, dword [esp + 0x54]
mulss xmm2, xmm3
subss xmm0, xmm2
cvttss2si eax, xmm0
movd xmm0, eax
mov eax, str.M:0.000
cvtdq2ps xmm0, xmm0
cmove eax, edx
push eax
lea eax, [esp + 0x28]
push eax
maxss xmm0, dword [0x100bd4f4]
movss dword [esp + 0x68], xmm0
call fcn.1000d679
movss xmm1, dword [esp + 0x28]
add esp, 0x14
test ebx, 0x200000
movss xmm0, dword [eax]
push 0
pop eax
setne al
xor ecx, ecx
inc eax
comiss xmm0, xmm1
cmovae eax, ecx
xor esi, esi
cmp dword [esp + 0x24], ecx
jbe 0x10055cf1
shl eax, 4
cmp dword [esp + 0x20], ecx
je 0x10055c10
mov ecx, ebx
lea eax, [eax + 0x100f0670]
mov bl, byte [esp + 0x12]
and ecx, 8
mov dword [esp + 0x18], ecx
mov edi, ecx
mov dword [esp + 0x20], eax
test esi, esi
je 0x10055b69
movss xmm0, dword [ebp + 0x37f4]
push ecx
push ecx
movss dword [esp + 4], xmm0
and dword [esp], 0
call fcn.1000b73d
movss xmm1, dword [esp + 0x1c]
pop ecx
pop ecx
lea eax, [esi + 1]
mov dword [esp + 0x18], eax
cmp eax, dword [esp + 0x24]
jge 0x10055b7b
movaps xmm0, xmm1
jmp 0x10055b81
movss xmm0, dword [esp + 0x54]
push ecx
movss dword [esp], xmm0
call fcn.1000b525
cmp byte [esp + 0x40], 0
mov eax, dword [esp + 0x24]
pop ecx
je 0x10055b9d
xorps xmm0, xmm0
jmp 0x10055ba5
movss xmm0, dword [0x100bd4f4]
push 0
push dword [eax]
lea eax, [esp + 0x94]
sub esp, 0xc
lea eax, [eax + esi*4]
movss dword [esp + 8], xmm0
and dword [esp + 4], 0
mov dword [esp], 0x3b808081
push eax
push dword [esi*4 + 0x100f0630]
call fcn.10053966
or bl, al
add esp, 0x1c
or byte [esp + 0x13], bl
test edi, edi
jne 0x10055bf2
xor eax, eax
inc eax
push eax
push str.context
call fcn.1000c0f7
pop ecx
pop ecx
mov esi, dword [esp + 0x18]
add dword [esp + 0x20], 4
movss xmm1, dword [esp + 0x14]
cmp esi, dword [esp + 0x24]
jl 0x10055b44
jmp 0x10055ce5
xor edx, edx
lea eax, [eax + 0x100f0640]
xor esi, esi
mov dword [esp + 0x20], eax
cmp byte [esp + 0x3c], dl
mov ecx, 0xff
cmovne ecx, edx
mov dword [esp + 0x18], ecx
mov ecx, ebx
mov edi, dword [esp + 0x18]
and ecx, 8
mov dword [esp + 0x3c], ecx
mov bl, dl
test esi, esi
jle 0x10055c62
movss xmm0, dword [ebp + 0x37f4]
push ecx
push ecx
movss dword [esp + 4], xmm0
and dword [esp], 0
call fcn.1000b73d
movss xmm1, dword [esp + 0x1c]
pop ecx
pop ecx
lea eax, [esi + 1]
mov dword [esp + 0x18], eax
cmp eax, dword [esp + 0x24]
jge 0x10055c74
movaps xmm0, xmm1
jmp 0x10055c7a
movss xmm0, dword [esp + 0x54]
push ecx
movss dword [esp], xmm0
call fcn.1000b525
mov eax, dword [esp + 0x24]
pop ecx
push 0
push dword [eax]
lea eax, [esp + 0xa4]
push edi
push 0
push ecx
lea eax, [eax + esi*4]
mov dword [esp], 0x3f800000
push eax
push dword [esi*4 + 0x100f0630]
call fcn.10053bea
add esp, 0x1c
or bl, al
cmp dword [esp + 0x3c], 0
jne 0x10055ccc
xor eax, eax
inc eax
push eax
push str.context
call fcn.1000c0f7
pop ecx
pop ecx
mov esi, dword [esp + 0x18]
add dword [esp + 0x20], 4
movss xmm1, dword [esp + 0x14]
cmp esi, dword [esp + 0x24]
jl 0x10055c3d
mov edi, dword [esp + 0x2c]
mov byte [esp + 0x12], bl
mov ebx, dword [esp + 0x58]
and dword [esp + 0x14], 0
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0x44]
jmp 0x10055f0e
mov eax, ebx
mov esi, ecx
and eax, 0x400020
cmp eax, 0x400000
jne 0x10055f1a
mov dword [esp + 0x14], 0xff
test dl, dl
je 0x10055db0
mov ecx, dword [esp + 0xa8]
mov eax, ecx
mov edx, dword [esp + 0xa4]
cmp ecx, 0xff
mov esi, dword [esp + 0xa0]
cmovg eax, dword [esp + 0x14]
and dword [esp + 0x18], 0
test ecx, ecx
mov ecx, dword [esp + 0x14]
cmovs eax, dword [esp + 0x18]
cmp edx, ecx
mov edi, dword [esp + 0x9c]
push eax
mov eax, edx
cmovg eax, ecx
and dword [esp + 0x1c], 0
test edx, edx
cmovs eax, dword [esp + 0x1c]
cmp esi, ecx
push eax
mov eax, esi
cmovg eax, ecx
xor edx, edx
test esi, esi
cmovs eax, edx
cmp edi, ecx
push eax
mov eax, edi
cmovg eax, ecx
xor ecx, ecx
test edi, edi
cmovs eax, ecx
push eax
push 0x100d6524
lea eax, [esp + 0xc0]
push 0x40
push eax
call fcn.1000ffb6
mov edi, dword [esp + 0x48]
add esp, 0x1c
jmp 0x10055e1d
mov ecx, dword [esp + 0xa4]
mov eax, ecx
mov edx, dword [esp + 0xa0]
cmp ecx, 0xff
mov esi, dword [esp + 0x9c]
cmovg eax, dword [esp + 0x14]
and dword [esp + 0x18], 0
test ecx, ecx
mov ecx, dword [esp + 0x14]
cmovs eax, dword [esp + 0x18]
cmp edx, ecx
push eax
mov eax, edx
cmovg eax, ecx
and dword [esp + 0x1c], 0
test edx, edx
cmovs eax, dword [esp + 0x1c]
cmp esi, ecx
push eax
mov eax, esi
cmovg eax, ecx
xor ecx, ecx
test esi, esi
cmovs eax, ecx
push eax
push 0x100d6538
lea eax, [esp + 0xbc]
push 0x40
push eax
call fcn.1000ffb6
add esp, 0x18
movss xmm4, dword [esp + 0x48]
push ecx
movss dword [esp], xmm4
call fcn.1000b525
push 0
push 0
push 6
push 0x40
lea eax, [esp + 0xc0]
push eax
push str.Text
call fcn.10054ffd
add esp, 0x1c
test al, al
je 0x10055ef1
xor eax, eax
lea ecx, [esp + 0xac]
inc eax
mov byte [esp + 0x12], al
mov al, byte [ecx]
cmp al, 0x23
je 0x10055e6f
cmp al, 0x20
je 0x10055e6f
cmp al, 9
jne 0x10055e72
inc ecx
jmp 0x10055e61
xor eax, eax
cmp byte [esp + 0x34], 0
mov dword [esp + 0xa4], eax
mov dword [esp + 0xa0], eax
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0xa8], eax
je 0x10055ecb
lea eax, [esp + 0xa8]
push eax
lea eax, [esp + 0xa8]
push eax
lea eax, [esp + 0xa8]
push eax
lea eax, [esp + 0xa8]
push eax
push str._02X_02X_02X_02X
push ecx
call fcn.10023e4d
add esp, 0x18
jmp 0x10055ef1
lea eax, [esp + 0xa4]
push eax
lea eax, [esp + 0xa4]
push eax
lea eax, [esp + 0xa4]
push eax
push str._02X_02X_02X
push ecx
call fcn.10023e4d
add esp, 0x14
mov ecx, dword [esp + 0x44]
mov esi, ecx
test bl, 8
jne 0x10055f0e
xor eax, eax
inc eax
push eax
push str.context
call fcn.1000c0f7
pop ecx
pop ecx
mov ecx, esi
movss xmm2, dword [esp + 0x38]
movss xmm3, dword [esp + 0x28]
and dword [esp + 0x28], 0
test bl, 0x10
jne 0x100560e7
mov esi, ecx
mov dword [esp + 0x14], esi
test esi, esi
jne 0x10055f4a
cmp dword [ebp + 0x3834], ecx
je 0x10055f4a
movss xmm0, dword [esp + 0x48]
addss xmm0, dword [ebp + 0x37f4]
jmp 0x10055f4d
xorps xmm0, xmm0
cmp byte [esp + 0x34], 0
addss xmm0, xmm2
mov eax, dword [esp + 0x6c]
movss dword [eax + 0xf0], xmm0
movss dword [eax + 0xf4], xmm3
je 0x10055f77
movss xmm0, dword [edi + 0xc]
movss dword [esp + 0x5c], xmm0
movss xmm0, dword [edi]
lea eax, [esp + 0x18]
and dword [esp + 0x18], 0
and dword [esp + 0x1c], 0
movss dword [esp + 0x70], xmm0
movss xmm0, dword [edi + 4]
push eax
movss dword [esp + 0x78], xmm0
lea eax, [esp + 0x74]
movss xmm0, dword [edi + 8]
push ebx
movss dword [esp + 0x80], xmm0
movss xmm0, dword [esp + 0x64]
push eax
push str.ColorButton
movss dword [esp + 0x8c], xmm0
call fcn.1005833e
add esp, 0x10
test al, al
je 0x10056038
test bl, 4
jne 0x10056038
lea edi, [ebp + 0x5978]
lea esi, [esp + 0x70]
movsd dword es:[edi], dword [esi]
push 0
push str.picker
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.1000c0ad
movss xmm0, dword [ebp + 0x46c0]
lea eax, [esp + 0x20]
and dword [esp + 0x20], 0
and dword [esp + 0x24], 0
movss dword [esp + 0x64], xmm0
movss xmm0, dword [ebp + 0x37f0]
addss xmm0, dword [ebp + 0x46cc]
push eax
lea eax, [esp + 0x68]
push 0
push eax
movss dword [esp + 0x74], xmm0
call fcn.1000ac05
mov esi, dword [esp + 0x28]
add esp, 0x14
mov edi, dword [esp + 0x2c]
test bl, 8
jne 0x1005604d
xor eax, eax
inc eax
push eax
push str.context
call fcn.1000c0f7
pop ecx
pop ecx
push 0
push str.picker
call fcn.1000bf45
pop ecx
pop ecx
test al, al
je 0x100560e3
mov eax, dword [ebp + 0x3e40]
xor ecx, ecx
inc ecx
cmp word [eax + 0xb6], cx
jne 0x100560da
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x30]
cmp eax, ecx
je 0x10056096
push 0
push ecx
push eax
call fcn.1005d0ad
add esp, 0xc
call fcn.10051c50
movss xmm0, dword [esp + 0x64]
mulss xmm0, dword [0x100bd520]
push ecx
movss dword [esp], xmm0
call fcn.1000b525
lea eax, [ebp + 0x5978]
push eax
mov eax, dword [esp + 0x88]
and eax, 0x1f890002
or eax, 0x740080
push eax
push edi
push 0x100c4a54
call fcn.100564be
add esp, 0x14
or byte [esp + 0x12], al
call fcn.1000c06e
mov dword [esp + 0x14], esi
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x50]
cmp dword [esp + 0x30], eax
je 0x1005614e
test bl, bl
js 0x1005614e
movss xmm0, dword [ebp + 0x37f4]
push ecx
push ecx
movss dword [esp + 4], xmm0
and dword [esp], 0
call fcn.1000b73d
pop ecx
pop ecx
test esi, esi
je 0x1005611c
movss xmm0, dword [esp + 0x4c]
jmp 0x1005612a
movss xmm0, dword [esp + 0x68]
addss xmm0, dword [ebp + 0x37f4]
addss xmm0, dword [esp + 0x38]
mov eax, dword [esp + 0x6c]
push 0
push dword [esp + 0x54]
push dword [esp + 0x38]
movss dword [eax + 0xf0], xmm0
call fcn.1005d0ad
add esp, 0xc
cmp byte [esp + 0x12], 0
je 0x100562fe
cmp dword [esp + 0x28], 0
jne 0x100562fe
cmp byte [esp + 0x13], 0
jne 0x10056185
movups xmm0, xmmword [esp + 0x9c]
cvtdq2ps xmm0, xmm0
mulps xmm0, xmmword [0x100d6840]
movups xmmword [esp + 0x8c], xmm0
mov ecx, 0x8200000
mov eax, ebx
and eax, ecx
cmp eax, ecx
jne 0x10056264
movss xmm0, dword [esp + 0x8c]
lea eax, [esp + 0x94]
push eax
lea eax, [esp + 0x94]
movss dword [ebp + 0x596c], xmm0
movss xmm0, dword [esp + 0x94]
push eax
lea eax, [esp + 0x94]
movss dword [ebp + 0x5970], xmm0
movss xmm0, dword [esp + 0x9c]
push eax
sub esp, 0xc
movss dword [esp + 8], xmm0
movss xmm0, dword [esp + 0xa8]
movss dword [esp + 4], xmm0
movss xmm0, dword [esp + 0xa4]
movss dword [esp], xmm0
call fcn.1000d90d
mov eax, dword [ebp + 0x5964]
and dword [esp + 0x94], 0
mov dword [ebp + 0x5968], eax
lea eax, [esp + 0x88]
movss xmm0, dword [esp + 0xa4]
movss dword [esp + 0x88], xmm0
movss xmm0, dword [esp + 0xa8]
movss dword [esp + 0x8c], xmm0
movss xmm0, dword [esp + 0xac]
push eax
movss dword [esp + 0x94], xmm0
call fcn.1000d7bf
add esp, 0x1c
mov dword [ebp + 0x5974], eax
cmp dword [esp + 0x84], 0x10100000
jne 0x100562c0
movss xmm0, dword [esp + 0x94]
lea eax, [esp + 0x94]
push eax
lea eax, [esp + 0x94]
push eax
lea eax, [esp + 0x94]
push eax
sub esp, 0xc
movss dword [esp + 8], xmm0
movss xmm0, dword [esp + 0xa8]
movss dword [esp + 4], xmm0
movss xmm0, dword [esp + 0xa4]
movss dword [esp], xmm0
call fcn.1000d867
add esp, 0x18
cmp byte [esp + 0x34], 0
movss xmm0, dword [esp + 0x8c]
movss dword [edi], xmm0
movss xmm0, dword [esp + 0x90]
movss dword [edi + 4], xmm0
movss xmm0, dword [esp + 0x94]
movss dword [edi + 8], xmm0
je 0x100562fe
movss xmm0, dword [esp + 0x98]
movss dword [edi + 0xc], xmm0
cmp dword [esp + 0x88], 0
jne 0x1005630f
and dword [ebp + 0x5964], 0
call fcn.1000bea8
call fcn.1000b9cc
xor eax, eax
inc eax
test byte [ebp + 0x46bc], al
je 0x100563e9
test ebx, 0x200
jne 0x100563e9
call fcn.1000c906
test al, al
je 0x100563e9
push 0
push str._COL3F
mov byte [esp + 0x1b], 0
call fcn.1000c9b0
pop ecx
pop ecx
test eax, eax
je 0x10056366
mov esi, dword [eax]
xor eax, eax
inc eax
mov byte [esp + 0x13], al
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
jmp 0x1005636a
mov al, byte [esp + 0x12]
push 0
push str._COL4F
mov byte [esp + 0x1a], al
call fcn.1000c9b0
pop ecx
pop ecx
test eax, eax
je 0x100563a0
mov ecx, dword [esp + 0x24]
mov esi, dword [esp + 0x2c]
shl ecx, 2
push ecx
push dword [eax]
push esi
call fcn.10097cf0
xor eax, eax
add esp, 0xc
inc eax
mov byte [esp + 0x12], al
jmp 0x100563ab
cmp byte [esp + 0x13], 0
je 0x100563e4
mov esi, dword [esp + 0x2c]
test ebx, 0x10000000
je 0x100563e4
lea ecx, [esi + 8]
movss xmm0, dword [ecx]
lea eax, [esi + 4]
push ecx
push eax
push esi
sub esp, 0xc
movss dword [esp + 8], xmm0
movss xmm0, dword [eax]
movss dword [esp + 4], xmm0
movss xmm0, dword [esi]
movss dword [esp], xmm0
call fcn.1000d867
add esp, 0x18
call fcn.1000cb61
mov ecx, dword [esp + 0x28]
test ecx, ecx
je 0x10056409
mov eax, dword [ebp + 0x3e8c]
test eax, eax
je 0x10056409
cmp dword [ebp + 0x3ea8], ecx
jne 0x10056409
mov dword [ebp + 0x46b4], eax
mov bl, byte [esp + 0x12]
test bl, bl
je 0x10056422
mov eax, dword [ebp + 0x46b4]
test eax, eax
je 0x10056422
push eax
call fcn.10012fc8
pop ecx
mov al, bl
pop ebp
mov ecx, dword [esp + 0xe8]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.1009543c
add esp, 0xe0
ret