Function at 0x103f5608
Capabilities:
Open clipboard
Write clipboard data

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xb0
mov eax, dword [0x105e0c00]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [0x105f27f0]
mov dword [ebp - 0x2c], eax
push ecx
movss xmm0, dword [0x104e6474]
movss dword [esp], xmm0
push ecx
movss xmm0, dword [0x104e6474]
movss dword [esp], xmm0
lea ecx, [ebp - 0xa0]
call fcn.103d5180
push eax
mov ecx, dword [ebp + 0xc]
add ecx, 0x1d8
push ecx
lea edx, [ebp - 0x70]
push edx
call fcn.103db7f0
add esp, 0xc
mov dword [ebp - 0x64], eax
push ecx
movss xmm0, dword [0x104e6474]
movss dword [esp], xmm0
push ecx
movss xmm0, dword [0x104e6474]
movss dword [esp], xmm0
lea ecx, [ebp - 0x78]
call fcn.103d5180
push eax
mov eax, dword [ebp + 0xc]
add eax, 0x1d0
push eax
lea ecx, [ebp - 0x80]
push ecx
call fcn.103db7b0
add esp, 0xc
mov dword [ebp - 0x68], eax
mov edx, dword [ebp - 0x64]
push edx
mov eax, dword [ebp - 0x68]
push eax
lea ecx, [ebp - 0x14]
call fcn.103dad40
push ecx
movss xmm0, dword [ebp - 0xc]
movss dword [esp], xmm0
mov ecx, dword [ebp + 0xc]
movss xmm0, dword [ebp - 0x14]
addss xmm0, dword [ecx + 0x64]
push ecx
movss dword [esp], xmm0
call fcn.103d80a0
add esp, 8
fstp dword [ebp - 0x14]
push ecx
movss xmm0, dword [ebp - 8]
movss dword [esp], xmm0
mov edx, dword [ebp + 0xc]
movss xmm0, dword [ebp - 0x10]
addss xmm0, dword [edx + 0x68]
push ecx
movss dword [esp], xmm0
call fcn.103d80a0
add esp, 8
fstp dword [ebp - 0x10]
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x28], eax
mov ecx, dword [ebp + 0x14]
and ecx, 0x15
jne 0x103f5480
mov edx, dword [ebp + 0xc]
movzx eax, byte [edx + 0xa8]
test eax, eax
je 0x103f5480
mov ecx, dword [ebp + 0x14]
or ecx, 1
mov dword [ebp + 0x14], ecx
mov edx, dword [ebp + 0x14]
and edx, 0x2a
jne 0x103f54af
mov eax, dword [ebp + 0xc]
movzx ecx, byte [eax + 0xb0]
test ecx, ecx
je 0x103f549f
mov dword [ebp - 0x30], 0x20
jmp 0x103f54a6
mov dword [ebp - 0x30], 2
mov edx, dword [ebp + 0x14]
or edx, dword [ebp - 0x30]
mov dword [ebp + 0x14], edx
mov eax, dword [ebp + 0x10]
movss xmm0, dword [eax]
comiss xmm0, dword [ebp - 0x14]
jb 0x103f54d0
mov ecx, dword [ebp + 0x10]
movss xmm0, dword [ebp - 0xc]
comiss xmm0, dword [ecx + 8]
jb 0x103f54d0
mov byte [ebp - 0x1d], 1
jmp 0x103f54d4
mov byte [ebp - 0x1d], 0
mov dl, byte [ebp - 0x1d]
mov byte [ebp - 0x21], dl
mov eax, dword [ebp + 0x10]
movss xmm0, dword [eax + 4]
comiss xmm0, dword [ebp - 0x10]
jb 0x103f54fc
mov ecx, dword [ebp + 0x10]
movss xmm0, dword [ebp - 8]
comiss xmm0, dword [ecx + 0xc]
jb 0x103f54fc
mov byte [ebp - 0x1e], 1
jmp 0x103f5500
mov byte [ebp - 0x1e], 0
mov dl, byte [ebp - 0x1e]
mov byte [ebp - 0x23], dl
mov ecx, dword [ebp + 0x10]
call fcn.103e8240
fstp dword [ebp - 0x34]
movss xmm0, dword [ebp - 0x34]
mov eax, dword [ebp - 0x2c]
movss xmm1, dword [eax + 0x37ec]
mulss xmm1, dword [0x104e647c]
addss xmm0, xmm1
lea ecx, [ebp - 0x14]
movss dword [ebp - 0x3c], xmm0
call fcn.103e8240
fstp dword [ebp - 0x38]
movss xmm0, dword [ebp - 0x38]
movss xmm1, dword [ebp - 0x3c]
comiss xmm0, xmm1
jae 0x103f556b
mov ecx, dword [ebp + 0xc]
movsx edx, byte [ecx + 0xc4]
test edx, edx
jg 0x103f556b
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 0xc]
and ecx, 0x40
jne 0x103f556b
mov byte [ebp - 0x1f], 0
jmp 0x103f556f
mov byte [ebp - 0x1f], 1
mov dl, byte [ebp - 0x1f]
mov byte [ebp - 0x22], dl
mov ecx, dword [ebp + 0x10]
call fcn.103e7290
fstp dword [ebp - 0x40]
movss xmm0, dword [ebp - 0x40]
mov eax, dword [ebp - 0x2c]
movss xmm1, dword [eax + 0x37f0]
mulss xmm1, dword [0x104e647c]
addss xmm0, xmm1
lea ecx, [ebp - 0x14]
movss dword [ebp - 0x48], xmm0
call fcn.103e7290
fstp dword [ebp - 0x44]
movss xmm0, dword [ebp - 0x44]
movss xmm1, dword [ebp - 0x48]
comiss xmm0, xmm1
jae 0x103f55da
mov ecx, dword [ebp + 0xc]
movsx edx, byte [ecx + 0xc5]
test edx, edx
jg 0x103f55da
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 0xc]
and ecx, 0x40
jne 0x103f55da
mov byte [ebp - 0x20], 0
jmp 0x103f55de
mov byte [ebp - 0x20], 1
mov dl, byte [ebp - 0x20]
mov byte [ebp - 0x24], dl
mov eax, dword [ebp + 0x14]
and eax, 1
je 0x103f5696
movzx ecx, byte [ebp - 0x21]
test ecx, ecx
jne 0x103f5696
mov edx, dword [ebp + 0x10]
movss xmm0, dword [ebp - 0x14]
comiss xmm0, dword [edx]
ja 0x103f5611
movzx eax, byte [ebp - 0x22]
test eax, eax
jne 0x103f5648
push ecx
xorps xmm0, xmm0
movss dword [esp], xmm0
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp - 0x2c]
movss xmm0, dword [ecx]
subss xmm0, dword [edx + 0x37ec]
mov eax, dword [ebp + 0xc]
subss xmm0, dword [eax + 0x14]
push ecx
movss dword [esp], xmm0
mov ecx, dword [ebp + 0xc]
push ecx
call fcn.103f67a0
add esp, 0xc
jmp 0x103f5691
mov edx, dword [ebp + 0x10]
movss xmm0, dword [edx + 8]
comiss xmm0, dword [ebp - 0xc]
jb 0x103f5691
push ecx
movss xmm0, dword [0x104e6474]
movss dword [esp], xmm0
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x2c]
movss xmm0, dword [eax + 8]
addss xmm0, dword [ecx + 0x37ec]
mov edx, dword [ebp + 0xc]
subss xmm0, dword [edx + 0x14]
push ecx
movss dword [esp], xmm0
mov eax, dword [ebp + 0xc]
push eax
call fcn.103f67a0
add esp, 0xc
jmp 0x103f573b
mov ecx, dword [ebp + 0x14]
and ecx, 4
je 0x103f56a6
movzx edx, byte [ebp - 0x21]
test edx, edx
je 0x103f56b2
mov eax, dword [ebp + 0x14]
and eax, 0x10
je 0x103f573b
movzx ecx, byte [ebp - 0x22]
test ecx, ecx
je 0x103f5711
push ecx
movss xmm0, dword [0x104e646c]
movss dword [esp], xmm0
mov edx, dword [ebp + 0x10]
mov eax, dword [ebp + 0x10]
movss xmm0, dword [edx]
addss xmm0, dword [eax + 8]
mulss xmm0, dword [0x104e646c]
push ecx
movss dword [esp], xmm0
call fcn.103e89a0
add esp, 4
fstp dword [ebp - 0x4c]
movss xmm0, dword [ebp - 0x4c]
mov ecx, dword [ebp + 0xc]
subss xmm0, dword [ecx + 0x14]
push ecx
movss dword [esp], xmm0
mov edx, dword [ebp + 0xc]
push edx
call fcn.103f67a0
add esp, 0xc
jmp 0x103f573b
push ecx
xorps xmm0, xmm0
movss dword [esp], xmm0
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 0xc]
movss xmm0, dword [eax]
subss xmm0, dword [ecx + 0x14]
push ecx
movss dword [esp], xmm0
mov edx, dword [ebp + 0xc]
push edx
call fcn.103f67a0
add esp, 0xc
mov eax, dword [ebp + 0x14]
and eax, 2
je 0x103f57ef
movzx ecx, byte [ebp - 0x23]
test ecx, ecx
jne 0x103f57ef
mov edx, dword [ebp + 0x10]
movss xmm0, dword [ebp - 0x10]
comiss xmm0, dword [edx + 4]
ja 0x103f5769
movzx eax, byte [ebp - 0x24]
test eax, eax
jne 0x103f57a1
push ecx
xorps xmm0, xmm0
movss dword [esp], xmm0
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp - 0x2c]
movss xmm0, dword [ecx + 4]
subss xmm0, dword [edx + 0x37f0]
mov eax, dword [ebp + 0xc]
subss xmm0, dword [eax + 0x18]
push ecx
movss dword [esp], xmm0
mov ecx, dword [ebp + 0xc]
push ecx
call fcn.103f6800
add esp, 0xc
jmp 0x103f57ea
mov edx, dword [ebp + 0x10]
movss xmm0, dword [edx + 0xc]
comiss xmm0, dword [ebp - 8]
jb 0x103f57ea
push ecx
movss xmm0, dword [0x104e6474]
movss dword [esp], xmm0
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x2c]
movss xmm0, dword [eax + 0xc]
addss xmm0, dword [ecx + 0x37f0]
mov edx, dword [ebp + 0xc]
subss xmm0, dword [edx + 0x18]
push ecx
movss dword [esp], xmm0
mov eax, dword [ebp + 0xc]
push eax
call fcn.103f6800
add esp, 0xc
jmp 0x103f5896
mov ecx, dword [ebp + 0x14]
and ecx, 8
je 0x103f57ff
movzx edx, byte [ebp - 0x23]
test edx, edx
je 0x103f580b
mov eax, dword [ebp + 0x14]
and eax, 0x20
je 0x103f5896
movzx ecx, byte [ebp - 0x24]
test ecx, ecx
je 0x103f586b
push ecx
movss xmm0, dword [0x104e646c]
movss dword [esp], xmm0
mov edx, dword [ebp + 0x10]
mov eax, dword [ebp + 0x10]
movss xmm0, dword [edx + 4]
addss xmm0, dword [eax + 0xc]
mulss xmm0, dword [0x104e646c]
push ecx
movss dword [esp], xmm0
call fcn.103e89a0
add esp, 4
fstp dword [ebp - 0x50]
movss xmm0, dword [ebp - 0x50]
mov ecx, dword [ebp + 0xc]
subss xmm0, dword [ecx + 0x18]
push ecx
movss dword [esp], xmm0
mov edx, dword [ebp + 0xc]
push edx
call fcn.103f6800
add esp, 0xc
jmp 0x103f5896
push ecx
xorps xmm0, xmm0
movss dword [esp], xmm0
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 0xc]
movss xmm0, dword [eax + 4]
subss xmm0, dword [ecx + 0x18]
push ecx
movss dword [esp], xmm0
mov edx, dword [ebp + 0xc]
push edx
call fcn.103f6800
add esp, 0xc
mov eax, dword [ebp + 0xc]
push eax
lea ecx, [ebp - 0x1c]
push ecx
call fcn.103e1460
add esp, 8
mov edx, dword [ebp + 0xc]
add edx, 0x78
push edx
lea eax, [ebp - 0x1c]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.103db7b0
add esp, 0xc
mov edx, dword [ebp + 0x14]
and edx, 0x40
jne 0x103f5984
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 0xc]
and ecx, 0x1000000
je 0x103f5984
mov edx, dword [ebp - 0x28]
and edx, 0x14
je 0x103f58ef
mov eax, dword [ebp - 0x28]
and eax, 0xffffffea
or eax, 1
mov dword [ebp - 0x28], eax
mov ecx, dword [ebp - 0x28]
and ecx, 0x28
je 0x103f5903
mov edx, dword [ebp - 0x28]
and edx, 0xffffffd5
or edx, 2
mov dword [ebp - 0x28], edx
mov eax, dword [ebp + 8]
push eax
mov ecx, dword [ebp + 0x10]
add ecx, 8
push ecx
lea edx, [ebp - 0x88]
push edx
call fcn.103db7b0
add esp, 0xc
mov dword [ebp - 0x54], eax
mov eax, dword [ebp + 8]
push eax
mov ecx, dword [ebp + 0x10]
push ecx
lea edx, [ebp - 0x90]
push edx
call fcn.103db7b0
add esp, 0xc
mov dword [ebp - 0x58], eax
mov eax, dword [ebp - 0x54]
push eax
mov ecx, dword [ebp - 0x58]
push ecx
lea ecx, [ebp - 0xb0]
call fcn.103dad40
mov dword [ebp - 0x5c], eax
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + 0x2f8]
mov dword [ebp - 0x60], eax
mov ecx, dword [ebp - 0x28]
push ecx
mov edx, dword [ebp - 0x5c]
push edx
mov eax, dword [ebp - 0x60]
push eax
lea ecx, [ebp - 0x98]
push ecx
call fcn.103f5360
add esp, 0x10
push eax
mov edx, dword [ebp + 8]
push edx
call fcn.103db870
add esp, 8
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.104b547f
mov esp, ebp
pop ebp
ret