Function at 0x10127780
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x58
mov eax, dword [0x102d944c]
xor eax, esp
mov dword [esp + 0x54], eax
push esi
mov esi, dword [0x103f64e8]
mov eax, esi
push edi
mov edi, ecx
mov dword [esp + 0x24], eax
mov dword [esp + 0x18], esi
mov eax, dword [eax + 0x1be0]
and byte [edi + 0x95], 0xfd
cmp dword [edi + 0x10], 0
mov dword [edi + 0x78], eax
mov dword [edi + 0x74], 0
mov dword [edi + 0x70], 0
jne 0x101278d3
call fcn.101274e0
xor ecx, ecx
xor edx, edx
xor esi, esi
mov dword [esp + 0x3c], edx
mov dword [esp + 0x40], ecx
cmp dword [edi + 0x1c], ecx
jle 0x101277f7
mov edx, edi
mov ecx, 1
mov dword [esp + 0x3c], edx
mov dword [esp + 0x40], ecx
mov eax, dword [edi + 8]
shr eax, 0xb
test al, 1
cmovne esi, edi
mov dword [esp + 0x38], esi
cmp ecx, 1
jle 0x1012780f
test esi, esi
jne 0x1012784b
mov eax, dword [edi + 0x14]
test eax, eax
je 0x1012782d
lea edx, [esp + 0x38]
mov ecx, eax
call fcn.10127480
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x3c]
mov esi, dword [esp + 0x38]
mov eax, dword [edi + 0x18]
test eax, eax
je 0x1012784b
lea edx, [esp + 0x38]
mov ecx, eax
call fcn.10127480
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x3c]
mov esi, dword [esp + 0x38]
xor eax, eax
mov dword [edi + 0x70], esi
cmp ecx, 1
cmove eax, edx
cmp dword [edi + 0x84], 0
mov dword [edi + 0x74], eax
jne 0x1012786e
test edx, edx
je 0x101278c9
mov eax, dword [edx]
mov dword [edi + 0x84], eax
test edx, edx
je 0x101278c9
mov eax, dword [edx + 0x24]
mov ecx, 1
mov eax, dword [eax]
movups xmm0, xmmword [eax + 0x10]
movups xmmword [edi + 0x48], xmm0
movups xmm0, xmmword [eax + 0x20]
movups xmmword [edi + 0x58], xmm0
mov esi, dword [edx + 0x1c]
cmp esi, ecx
jle 0x101278c9
mov eax, dword [edx + 0x24]
mov dword [esp + 0x20], eax
lea edx, [eax + 4]
nop dword [eax]
mov eax, dword [edx]
cmp byte [eax + 0x2d], 0
je 0x101278b2
inc ecx
add edx, 4
cmp ecx, esi
jl 0x101278a0
jmp 0x101278c9
mov eax, dword [esp + 0x20]
mov eax, dword [eax + ecx*4]
movups xmm0, xmmword [eax + 0x10]
movups xmmword [edi + 0x48], xmm0
movups xmm0, xmmword [eax + 0x20]
movups xmmword [edi + 0x58], xmm0
mov esi, dword [0x103f64e8]
mov dword [esp + 0x18], esi
cmp dword [edi + 0x28], 0
je 0x101278f4
mov eax, dword [edi + 8]
shr eax, 0xc
test al, 1
je 0x101278f4
mov ecx, edi
call fcn.10129800
mov esi, dword [0x103f64e8]
mov dword [esp + 0x18], esi
mov edx, dword [edi + 0x1c]
cmp edx, 1
jg 0x10127b51
cmp dword [edi + 0x10], 0
jne 0x10127b51
test dword [edi + 8], 0x400
jne 0x10127b51
cmp dword [edi + 0x14], 0
jne 0x10127b51
mov eax, dword [esp + 0x24]
cmp byte [eax + 0xb1], 0
jne 0x10127b51
lea ecx, [edi + 0x24]
mov dword [esp + 0x10], ecx
test edx, edx
je 0x101279ed
mov eax, dword [ecx]
mov eax, dword [eax]
cmp byte [eax + 0x2c], 0
jne 0x10127b51
cmp edx, 1
jne 0x101279ed
mov eax, dword [ecx]
mov edx, dword [eax]
mov dword [esp + 0x20], edx
mov eax, dword [edx + 0x44]
mov ecx, dword [edx + 0x48]
mov dword [edi + 0x2c], eax
mov dword [edi + 0x30], ecx
mov eax, dword [edx + 0x54]
mov ecx, dword [edx + 0x58]
mov dword [edi + 0x34], eax
mov eax, dword [edi + 0x90]
and eax, 0xfffffebf
mov dword [edi + 0x38], ecx
or eax, 0x80
and eax, 0xffffffd7
or eax, 0x10
and eax, 0xfffffffa
or eax, 2
mov dword [edi + 0x90], eax
mov eax, dword [edi + 0x68]
test eax, eax
je 0x101279be
mov ecx, dword [esp + 0x24]
cmp dword [ecx + 0x1e18], eax
jne 0x101279be
mov ecx, edx
call fcn.1011e0d0
mov esi, dword [0x103f64e8]
mov edx, dword [esp + 0x20]
mov eax, dword [edi + 0x68]
test eax, eax
je 0x101279ea
mov ecx, dword [eax + 0x30]
mov dword [edx + 0x30], ecx
mov eax, dword [edi + 0x68]
mov eax, dword [eax + 0x34]
mov dword [edx + 0x34], eax
mov eax, dword [edi + 0x68]
cmp byte [eax + 0xc2], 0
je 0x101279ea
mov dword [ecx + 0x6c], edx
mov byte [edx + 0xc2], 1
lea ecx, [edi + 0x24]
mov eax, dword [edi + 0x68]
test eax, eax
je 0x10127a0d
cmp dword [eax + 0x3c0], edi
jne 0x10127a06
mov dword [eax + 0x3c0], 0
mov dword [edi + 0x68], 0
cmp dword [edi + 0x1c], 1
jne 0x10127a23
mov ecx, dword [ecx]
mov eax, dword [ecx]
mov dword [edi + 0x6c], eax
mov eax, dword [ecx]
and byte [eax + 0x3a1], 0xfe
cmp dword [edi + 0x28], 0
je 0x10127a36
mov ecx, edi
call fcn.10129800
mov esi, dword [0x103f64e8]
mov cl, byte [edi + 0x94]
mov eax, dword [esp + 0x24]
and cl, 0xef
and cl, 0xf3
mov dword [edi + 0xc], 1
mov dword [edi + 0x8c], 0
mov byte [edi + 0x94], cl
mov eax, dword [eax + 0x1be0]
mov dword [edi + 0x7c], eax
test cl, 0x40
je 0x101286a3
cmp dword [edi + 0x1c], 1
jne 0x101286a3
mov eax, dword [esp + 0x10]
mov eax, dword [eax]
mov ecx, dword [eax]
mov dword [esp + 0x20], ecx
call fcn.1011e0d0
mov edx, dword [esp + 0x20]
mov ecx, dword [edx + 0x88]
call fcn.10114050
mov byte [esi + 0x1e6a], 1
mov cl, 1
mov byte [esi + 0x1c92], 1
mov eax, dword [edx + 0x360]
movss xmm2, dword [esi + 0x38c]
movss xmm1, dword [esi + 0x390]
movaps xmm0, xmm2
subss xmm0, dword [eax + 0x44]
subss xmm1, dword [eax + 0x48]
movss dword [esi + 0x1ca8], xmm0
movss dword [esi + 0x1cac], xmm1
test byte [edx + 8], 4
jne 0x10127aee
mov eax, dword [edx + 0x360]
test byte [eax + 8], 4
je 0x10127af0
xor cl, cl
mov eax, dword [edx + 0x3c0]
test eax, eax
je 0x10127b07
mov eax, dword [eax + 0x6c]
test eax, eax
je 0x10127b07
test byte [eax + 8], 4
jne 0x10127b11
test cl, cl
je 0x10127b11
mov dword [esi + 0x1c58], edx
movss xmm0, dword [esi + 0x390]
subss xmm2, dword [edi + 0x2c]
subss xmm0, dword [edi + 0x30]
mov dword [esi + 0x1c58], edx
movss dword [esi + 0x1ca8], xmm2
movss dword [esi + 0x1cac], xmm0
and byte [edi + 0x94], 0xbf
pop edi
pop esi
mov ecx, dword [esp + 0x54]
xor ecx, esp
call fcn.101fae3a
mov esp, ebp
pop ebp
ret
mov al, byte [edi + 0x94]
test al, 1
je 0x10127bf2
cmp dword [edi + 0x68], 0
jne 0x10127bf2
cmp dword [edi + 0x10], 0
jne 0x10127bf2
test dword [edi + 8], 0x400
jne 0x10127bf2
cmp dword [edi + 0x14], 0
jne 0x10127bf2
cmp dword [edi + 0x88], 0
je 0x10127bba
xor ecx, ecx
test edx, edx
jle 0x10127bba
mov edx, dword [edi + 0x24]
mov eax, dword [edx]
mov esi, dword [edi + 0x88]
cmp dword [eax + 4], esi
mov esi, dword [esp + 0x18]
je 0x10127bb0
inc ecx
add edx, 4
cmp ecx, dword [edi + 0x1c]
jl 0x10127b94
jmp 0x10127bba
mov eax, dword [edi + 0x24]
mov eax, dword [eax + ecx*4]
test eax, eax
jne 0x10127bbf
mov eax, dword [edi + 0x24]
mov eax, dword [eax]
cmp byte [eax + 0xdc], 0
jg 0x10127bd1
cmp byte [eax + 0xdd], 0
jle 0x10127be9
mov dword [edi + 0xc], 2
pop edi
pop esi
mov ecx, dword [esp + 0x54]
xor ecx, esp
call fcn.101fae3a
mov esp, ebp
pop ebp
ret
mov al, byte [edi + 0x94]
mov edx, dword [edi + 0x1c]
mov ecx, dword [edi + 4]
or ecx, dword [edi + 8]
mov dword [esp + 0x10], ecx
test edx, edx
jle 0x10127c14
test ecx, 0x4000
jne 0x10127c14
and al, 0xfb
or al, 8
mov byte [edi + 0x94], al
jmp 0x10127c20
and al, 0xf3
mov byte [edi + 0x94], al
test edx, edx
jle 0x10127c6b
xor esi, esi
mov eax, dword [edi + 0x24]
mov edx, dword [eax + esi*4]
mov al, byte [edi + 0x94]
mov cl, byte [edx + 0xcc]
shl cl, 2
or cl, al
xor cl, al
and cl, 4
xor cl, al
cmp dword [edi + 0x1c], 1
mov byte [edi + 0x94], cl
mov al, byte [edx + 0x3a1]
setg cl
and al, 0xfe
inc esi
or cl, al
mov byte [edx + 0x3a1], cl
cmp esi, dword [edi + 0x1c]
jl 0x10127c22
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
mov eax, dword [edi + 8]
test ecx, 0x8000
je 0x10127c7d
and byte [edi + 0x94], 0xfb
xor ecx, ecx
shr eax, 0xa
mov dword [esp + 0x1c], ecx
mov byte [esp + 0x17], cl
test al, 1
je 0x10127c9a
mov ecx, dword [edi + 0x68]
mov dword [esp + 0x1c], ecx
jmp 0x10127fc2
mov ecx, dword [edi + 0x10]
test ecx, ecx
jne 0x10127ecd
test byte [edi + 0x94], 1
je 0x10127ee1
cmp dword [edi + 0x1c], ecx
jle 0x10127cbe
mov eax, dword [edi + 0x24]
mov edx, dword [eax]
jmp 0x10127cc0
xor edx, edx
mov eax, dword [edi + 0x90]
shl eax, 0x1d
sar eax, 0x1d
cmp eax, 2
jne 0x10127ce4
test edx, edx
je 0x10127d26
or dword [esi + 0x1cd0], 1
mov eax, dword [edx + 0x44]
mov ecx, dword [edx + 0x48]
jmp 0x10127cf5
cmp eax, 1
jne 0x10127d26
or dword [esi + 0x1cd0], eax
mov eax, dword [edi + 0x2c]
mov ecx, dword [edi + 0x30]
mov byte [esi + 0x1d0c], 1
mov dword [esi + 0x1cd4], 1
mov dword [esi + 0x1cf0], 0
mov dword [esi + 0x1cec], 0
mov dword [esi + 0x1ce8], ecx
mov dword [esi + 0x1ce4], eax
mov eax, dword [edi + 0x90]
shl eax, 0x1a
sar eax, 0x1d
cmp eax, 2
jne 0x10127d49
test edx, edx
je 0x10127d71
or dword [esi + 0x1cd0], eax
mov eax, dword [edx + 0x54]
mov ecx, dword [edx + 0x58]
jmp 0x10127d5b
cmp eax, 1
jne 0x10127d71
or dword [esi + 0x1cd0], 2
mov eax, dword [edi + 0x34]
mov ecx, dword [edi + 0x38]
mov dword [esi + 0x1cd8], 1
mov dword [esi + 0x1cf8], ecx
mov dword [esi + 0x1cf4], eax
mov eax, dword [edi + 0x90]
and al, 0x38
cmp al, 0x10
jne 0x10127d9e
test edx, edx
je 0x10127d9e
mov al, byte [edx + 0xc6]
or dword [esi + 0x1cd0], 8
mov byte [esi + 0x1d0d], al
mov dword [esi + 0x1cdc], 1
mov eax, dword [edi + 0x90]
and eax, 0x1c0
cmp eax, 0x80
jne 0x10127dc7
test edx, edx
je 0x10127dc7
mov eax, dword [edx + 0x34]
or dword [esi + 0x1cd0], 0x100
mov dword [esi + 0x1d2c], eax
or dword [esi + 0x1cd0], 0x400
lea eax, [esp + 0x48]
movups xmm0, xmmword [edi + 0x48]
movups xmmword [esi + 0x1d34], xmm0
movups xmm0, xmmword [edi + 0x58]
movups xmmword [esi + 0x1d44], xmm0
push dword [edi]
push str.DockNode__02X
push 0x14
push eax
call fcn.10111d00
mov esi, dword [0x103f64e8]
lea eax, [esp + 0x38]
add esp, 0x10
mov dword [esp + 0x28], 1
movss xmm1, dword [esi + 0x159c]
lea ecx, [esi + 0x1d7c]
movss xmm0, dword [esi + 0x15a0]
push eax
movss dword [esp + 0x30], xmm1
movss dword [esp + 0x34], xmm0
call fcn.1012df30
push 0x20081139
xor edx, edx
mov dword [esi + 0x159c], 0
lea ecx, [esp + 0x4c]
mov dword [esi + 0x15a0], 0
call fcn.1011ae30
add esp, 4
mov ecx, 1
call fcn.101129e0
mov eax, dword [esp + 0x24]
mov byte [esp + 0x17], 1
mov edx, dword [eax + 0x1c48]
mov dword [edi + 0x68], edx
mov dword [esp + 0x1c], edx
movss xmm0, dword [edx + 0x44]
movss xmm1, dword [edx + 0x48]
mov dword [edx + 0x3c0], edi
movss dword [edx + 0x108], xmm0
movss dword [edx + 0x10c], xmm1
movss dword [edi + 0x2c], xmm0
movss dword [edi + 0x30], xmm1
mov ecx, dword [edx + 0x50]
mov eax, dword [edx + 0x4c]
mov dword [edi + 0x38], ecx
mov ecx, dword [edi + 0x68]
mov dword [edi + 0x34], eax
cmp byte [ecx + 0xc9], 0
je 0x10127ec5
call fcn.1011e050
mov esi, dword [0x103f64e8]
jmp 0x10127ed7
mov ecx, dword [ecx + 0x68]
mov dword [esp + 0x1c], ecx
mov dword [edi + 0x68], ecx
and dword [edi + 0x90], 0xfffffe00
test byte [edi + 0x94], 0x40
je 0x10127fbe
mov ecx, dword [edi + 0x68]
mov dword [esp + 0x20], ecx
test ecx, ecx
je 0x10127fbe
call fcn.1011e0d0
mov edx, dword [esp + 0x20]
mov ecx, dword [edx + 0x88]
call fcn.10114050
mov byte [esi + 0x1e6a], 1
mov cl, 1
mov byte [esi + 0x1c92], 1
mov eax, dword [edx + 0x360]
movss xmm2, dword [esi + 0x38c]
movss xmm1, dword [esi + 0x390]
movaps xmm0, xmm2
subss xmm0, dword [eax + 0x44]
subss xmm1, dword [eax + 0x48]
movss dword [esi + 0x1ca8], xmm0
movss dword [esi + 0x1cac], xmm1
test byte [edx + 8], 4
jne 0x10127f66
mov eax, dword [edx + 0x360]
test byte [eax + 8], 4
je 0x10127f68
xor cl, cl
mov eax, dword [edx + 0x3c0]
test eax, eax
je 0x10127f7f
mov eax, dword [eax + 0x6c]
test eax, eax
je 0x10127f7f
test byte [eax + 8], 4
jne 0x10127f89
test cl, cl
je 0x10127f89
mov dword [esi + 0x1c58], edx
movss xmm0, dword [esi + 0x390]
subss xmm2, dword [edi + 0x2c]
subss xmm0, dword [edi + 0x30]
mov dword [esi + 0x1c58], edx
movss dword [esi + 0x1ca8], xmm2
movss dword [esi + 0x1cac], xmm0
and byte [edi + 0x94], 0xbf
mov esi, dword [0x103f64e8]
mov ecx, dword [esp + 0x1c]
cmp dword [edi + 0x10], 0
jne 0x10128158
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0x1e18]
test eax, eax
je 0x10127ffa
mov eax, dword [eax + 0x35c]
mov edx, dword [eax + 0x3bc]
test edx, edx
je 0x10127ffa
cmp dword [eax + 0x358], ecx
jne 0x10127ffa
mov eax, dword [edx]
mov dword [edi + 0x84], eax
mov edx, dword [esp + 0x10]
test ecx, ecx
je 0x1012815c
mov eax, edx
and eax, 8
mov dword [esp + 0x18], eax
je 0x1012815c
mov ecx, dword [ecx + 0x2c4]
mov eax, dword [ecx + 0x80]
lea esi, [ecx + 0x80]
mov byte [esp + 0xe], 1
mov dword [esp + 0x10], ecx
mov dword [esp + 0x20], eax
cmp eax, 2
jge 0x1012807b
push 2
mov ecx, esi
call fcn.1013d850
mov eax, dword [esi + 4]
cmp eax, 2
jge 0x10128071
test eax, eax
je 0x1012805a
cdq
sub eax, edx
mov ecx, eax
sar ecx, 1
add ecx, dword [esi + 4]
jmp 0x1012805f
mov ecx, 8
mov eax, 2
cmp ecx, eax
cmovg eax, ecx
mov ecx, esi
push eax
call fcn.1013d850
mov ecx, dword [esp + 0x10]
mov dword [esi], 2
mov dword [ecx + 0x7c], 2
xorps xmm0, xmm0
mov eax, dword [ecx + 0x88]
movups xmmword [eax], xmm0
movq qword [eax + 0x10], xmm0
mov esi, dword [ecx + 0x88]
add esi, 0x18
cmp dword [esp + 0x20], 1
jg 0x101280e2
mov dword [esp + 0x28], esi
test esi, esi
je 0x10128137
movups xmmword [esi], xmm0
movq qword [esi + 0x10], xmm0
mov dword [esi + 4], 0
mov dword [esi], 0
mov dword [esi + 8], 0
mov dword [esi + 0x10], 0
mov dword [esi + 0xc], 0
mov dword [esi + 0x14], 0
jmp 0x10128137
mov eax, dword [esi + 4]
test eax, eax
jns 0x10128104
cdq
xor ecx, ecx
sub eax, edx
sar eax, 1
add eax, dword [esi + 4]
test eax, eax
cmovg ecx, eax
push ecx
mov ecx, esi
call fcn.1013d930
mov ecx, dword [esp + 0x10]
mov dword [esi], 0
mov esi, dword [ecx + 0x88]
mov ecx, dword [esi + 0x28]
test ecx, ecx
jns 0x10128130
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
xor ecx, ecx
test eax, eax
cmovg ecx, eax
push ecx
lea ecx, [esi + 0x24]
call fcn.1010d1a0
mov dword [esi + 0x24], 0
mov ecx, dword [esp + 0x1c]
push 1
mov ecx, dword [ecx + 0x2c4]
push ecx
add ecx, 0x78
call fcn.10138eb0
mov esi, dword [0x103f64e8]
mov edx, dword [esp + 0x18]
jmp 0x10128168
mov edx, dword [esp + 0x10]
and edx, 8
mov byte [esp + 0xe], 0
mov dword [esp + 0x18], edx
cmp dword [edi + 0x10], 0
mov eax, dword [edi + 0x70]
mov dword [esp + 0x10], edx
mov dword [esp + 0x20], eax
jne 0x101283bf
mov ecx, dword [esp + 0x1c]
test ecx, ecx
je 0x101283bf
test edx, edx
je 0x101283bf
test eax, eax
je 0x101283bf
cmp dword [eax + 0x14], 0
jne 0x101283bf
cmp dword [eax + 0x1c], 0
jne 0x101283bf
xor eax, eax
mov byte [esp + 0xd], 1
cmp byte [esi + 0x1f5c], al
lea edx, [esi + 0x1f6c]
mov esi, dword [esp + 0x10]
cmove edx, eax
mov dword [esp + 0x18], esi
mov al, byte [esp + 0xe]
mov dword [esp + 0x28], edx
mov byte [esp + 0xc], al
test edx, edx
je 0x1012827b
cmp dword [edx + 0x10], 0xffffffff
je 0x10128269
add edx, 0x14
mov eax, str._IMWINDOW
mov cl, byte [eax]
cmp cl, byte [edx]
mov byte [esp + 0xf], cl
mov ecx, dword [esp + 0x1c]
jne 0x10128227
cmp byte [esp + 0xf], 0
je 0x10128223
mov cl, byte [eax + 1]
cmp cl, byte [edx + 1]
mov byte [esp + 0xf], cl
mov ecx, dword [esp + 0x1c]
jne 0x10128227
add eax, 2
add edx, 2
cmp byte [esp + 0xf], 0
jne 0x101281f1
xor eax, eax
jmp 0x1012822c
sbb eax, eax
or eax, 1
test eax, eax
jne 0x10128269
mov edx, dword [esp + 0x28]
mov al, byte [esp + 0xe]
mov byte [esp + 0xc], al
mov dword [esp + 0x18], esi
mov edx, dword [edx]
mov edx, dword [edx]
call fcn.101298b0
test al, al
je 0x10128277
mov al, byte [esp + 0xe]
mov ecx, dword [edi + 0x10]
mov dl, byte [esp + 0xd]
mov dword [esp + 0x18], esi
mov esi, dword [esp + 0x1c]
mov byte [esp + 0xc], al
jmp 0x101283df
mov al, byte [esp + 0xe]
mov byte [esp + 0xc], al
mov dword [esp + 0x18], esi
jmp 0x1012827b
mov ecx, dword [esp + 0x1c]
mov esi, dword [esp + 0x20]
mov edx, esi
mov eax, dword [esi + 0x10]
test eax, eax
je 0x10128291
mov edx, eax
mov eax, dword [edx + 0x10]
test eax, eax
jne 0x10128288
movss xmm4, dword [esi + 0x2c]
comiss xmm4, dword [edx + 0x2c]
movss xmm6, dword [edx + 0x30]
movaps xmm3, xmm4
movss xmm1, dword [esi + 0x30]
movaps xmm7, xmm6
movss xmm5, dword [edx + 0x2c]
movaps xmm2, xmm1
addss xmm5, dword [edx + 0x34]
addss xmm7, dword [edx + 0x38]
addss xmm3, dword [esi + 0x34]
addss xmm2, dword [esi + 0x38]
movss xmm0, dword [0x102c1508]
jbe 0x101282d4
addss xmm4, xmm0
comiss xmm5, xmm3
jbe 0x101282dd
subss xmm3, xmm0
comiss xmm1, xmm6
jbe 0x101282e6
addss xmm1, xmm0
comiss xmm7, xmm2
jbe 0x101282ef
subss xmm2, xmm0
comiss xmm4, xmm3
ja 0x101283ae
comiss xmm1, xmm2
ja 0x101283ae
subss xmm3, xmm4
movaps xmm0, xmm4
subss xmm2, xmm1
cvttss2si esi, xmm3
cvttss2si edx, xmm2
mov word [esp + 0x10], si
mov word [esp + 0x12], dx
mov eax, dword [esp + 0x10]
mov dword [ecx + 0x288], eax
subss xmm0, dword [ecx + 0x44]
cvttss2si eax, xmm0
movaps xmm0, xmm1
subss xmm0, dword [ecx + 0x48]
mov word [esp + 0x10], ax
cvttss2si eax, xmm0
mov word [esp + 0x12], ax
mov eax, dword [esp + 0x10]
mov dword [ecx + 0x28c], eax
mov ecx, dword [ecx + 0x358]
mov word [esp + 0x12], dx
mov word [esp + 0x10], si
mov eax, dword [esp + 0x10]
mov dword [ecx + 0x288], eax
subss xmm4, dword [ecx + 0x44]
subss xmm1, dword [ecx + 0x48]
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x18], edx
mov dl, byte [esp + 0xd]
cvttss2si eax, xmm4
mov word [esp + 0x10], ax
cvttss2si eax, xmm1
mov word [esp + 0x12], ax
mov eax, dword [esp + 0x10]
mov dword [ecx + 0x28c], eax
mov al, byte [esp + 0xc]
mov ecx, dword [edi + 0x10]
mov byte [esp + 0xc], al
jmp 0x101283df
mov ecx, dword [edi + 0x10]
mov esi, dword [esp + 0x1c]
mov al, byte [esp + 0xc]
mov dl, byte [esp + 0xd]
jmp 0x101283df
mov al, byte [esp + 0xe]
mov esi, dword [esp + 0x1c]
mov ecx, dword [edi + 0x10]
mov byte [esp + 0xd], 0
mov dl, byte [esp + 0xd]
mov byte [esp + 0xc], al
test esi, esi
je 0x101284a1
mov byte [esp + 0xf], dl
mov ah, al
mov byte [esp + 0xe], ah
test ecx, ecx
jne 0x10128414
push dword [esi + 0x50]
xor dl, dl
mov ecx, edi
push dword [esi + 0x4c]
push dword [esi + 0x48]
push dword [esi + 0x44]
call fcn.1012b100
add esp, 0x10
mov ecx, edi
call fcn.1012b450
mov dl, byte [esp + 0xf]
mov ah, byte [esp + 0xe]
cmp dword [edi + 0x14], 0
jne 0x101284a1
cmp dword [edi + 0x1c], 0
jne 0x101284a1
test byte [edi + 0x94], 1
mov al, ah
mov byte [esp + 0xd], dl
je 0x101284a5
cmp dword [esp + 0x18], 0
mov byte [esp + 0xd], dl
jne 0x101284a5
movss xmm0, dword [edi + 0x2c]
lea edx, [edi + 0x2c]
addss xmm0, dword [edi + 0x34]
movss xmm1, dword [0x102c13d0]
push 0
push ecx
mov ecx, 0x27
mov dword [esp], 0
movss dword [esp + 0x30], xmm0
movss xmm0, dword [edi + 0x38]
addss xmm0, dword [edx + 4]
movss dword [esp + 0x34], xmm0
call fcn.10112760
mov ecx, dword [esi + 0x2c4]
push eax
lea eax, [esp + 0x34]
push eax
push edx
call fcn.10138120
mov cl, byte [esp + 0xf]
mov al, byte [esp + 0xe]
mov byte [esp + 0xd], cl
jmp 0x101284a5
mov al, byte [esp + 0xc]
test al, al
je 0x101285d1
test byte [edi + 0x94], 1
je 0x101285d1
mov ecx, dword [esi + 0x2c4]
push 0
push ecx
add ecx, 0x78
call fcn.10138eb0
cmp byte [esp + 0xd], 0
lea edx, [edi + 0x2c]
je 0x10128575
mov eax, dword [esp + 0x20]
sub esp, 0x10
movss xmm2, dword [edi + 0x30]
mov ecx, 2
movss dword [esp + 0x3c], xmm2
addss xmm2, dword [edi + 0x38]
movss xmm0, dword [eax + 0x2c]
movss xmm1, dword [eax + 0x30]
movss dword [esp + 0x48], xmm0
addss xmm0, dword [eax + 0x34]
movss dword [esp + 0x4c], xmm1
addss xmm1, dword [eax + 0x38]
mov eax, esp
movss dword [esp + 0x44], xmm2
sub esp, 0x10
movss dword [esp + 0x60], xmm0
movss xmm0, dword [edx]
movss dword [esp + 0x48], xmm0
addss xmm0, dword [edi + 0x34]
movss dword [esp + 0x64], xmm1
movss xmm1, dword [0x102c13d0]
movss dword [esp + 0x50], xmm0
movups xmm0, xmmword [esp + 0x58]
movups xmmword [eax], xmm0
mov eax, esp
movups xmm0, xmmword [esp + 0x48]
movups xmmword [eax], xmm0
call fcn.10112760
mov ecx, dword [esi + 0x2c4]
xorps xmm2, xmm2
mov edx, eax
call fcn.1013cce0
add esp, 0x20
jmp 0x101285c2
movss xmm0, dword [edx]
addss xmm0, dword [edi + 0x34]
movss xmm1, dword [0x102c13d0]
push 0
push ecx
mov ecx, 2
mov dword [esp], 0
movss dword [esp + 0x30], xmm0
movss xmm0, dword [edi + 0x38]
addss xmm0, dword [edx + 4]
movss dword [esp + 0x34], xmm0
call fcn.10112760
mov ecx, dword [esi + 0x2c4]
push eax
lea eax, [esp + 0x34]
push eax
push edx
call fcn.10138120
mov ecx, dword [esi + 0x2c4]
push ecx
add ecx, 0x78
call fcn.10138a70
test esi, esi
je 0x101285e6
cmp dword [edi + 0x1c], 0
jle 0x101285e6
mov edx, esi
mov ecx, edi
call fcn.101288d0
jmp 0x10128600
mov al, byte [edi + 0x94]
and al, 0xef
mov dword [edi + 0x8c], 0
and al, 0xfd
mov byte [edi + 0x94], al
mov eax, dword [edi + 0x28]
test eax, eax
je 0x1012860e
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x1012861c
cmp dword [edi + 0x1c], 0
jle 0x10128622
mov eax, dword [edi + 0x24]
mov eax, dword [eax]
mov eax, dword [eax + 4]
mov dword [edi + 0x88], eax
test esi, esi
je 0x10128661
test byte [edi + 0x94], 1
je 0x10128661
cmp dword [edi + 0x10], 0
jne 0x10128661
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0x1c58]
test eax, eax
je 0x1012864b
cmp dword [eax + 0x360], esi
je 0x10128661
mov ecx, esi
call fcn.1012c4e0
mov ecx, dword [esp + 0x24]
mov eax, dword [ecx + 0x1be0]
mov dword [edi + 0x7c], eax
jmp 0x10128672
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0x1be0]
mov dword [edi + 0x7c], eax
test esi, esi
je 0x10128697
mov ecx, dword [edi + 0x14]
test ecx, ecx
je 0x1012867e
call fcn.10127780
mov ecx, dword [edi + 0x18]
test ecx, ecx
je 0x1012868a
call fcn.10127780
cmp dword [edi + 0x10], 0
jne 0x10128697
mov ecx, esi
call fcn.10119ac0
cmp byte [esp + 0x17], 0
je 0x101286a3
call fcn.1011dda0
mov ecx, dword [esp + 0x5c]
pop edi
pop esi
xor ecx, esp
call fcn.101fae3a
mov esp, ebp
pop ebp
ret