Function at 0x404ef0
Capabilities:
Encode data using xor
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push ecx
push 0xa
push 0x48a8ec
push 0x51920a
call fcn.004015c0
movsd xmm0, qword [0x611840]
add esp, 0xc
mulsd xmm0, qword [0x48bab8]
movzx eax, word [0x4f3632]
mov word [0x51910c], ax
cvtpd2ps xmm0, xmm0
movss dword [0x4f3664], xmm0
test ax, ax
jle 0x404f7a
push 0x4aa200
push 0x51920a
push 0x48a8f0
push 0x4a9c00
push str._s_s_s_s
push 0x4a9a00
call fcn.004015c0
push 0x4a9a00
call fcn.004026f0
push 0x48a470
push 0x4a9a00
call fcn.0044c7ec
add esp, 0x24
mov dword [0x630d94], eax
movzx eax, word [0x4f3634]
mov word [0x51911e], ax
push esi
push edi
mov edi, 1
test ax, ax
jle 0x40500f
push 0x4aa200
push 0x51920a
push 0x48a900
push 0x4a9c00
push str._s_s_s_s
push 0x4a9a00
call fcn.004015c0
push 0x48a470
push 0x4a9a00
call fcn.0044c7ec
add esp, 0x20
mov dword [0x630d9c], eax
mov esi, edi
cmp di, word [0x51911e]
jg 0x405002
push eax
movsx eax, si
push 1
push 0x28
lea eax, [eax + eax*4]
lea eax, [eax*8 + 0x4d3ea0]
push eax
call fcn.0044ca9e
mov eax, dword [0x630d9c]
inc esi
add esp, 0x10
cmp si, word [0x51911e]
jle 0x404fd8
test eax, eax
je 0x40500f
push eax
call fcn.0044c4fe
add esp, 4
cmp word [0x51910c], 0
jle 0x405429
push 0xa
push 0x48a8ec
push 0x4a9900
call fcn.004015c0
push 0x4aa200
push 0x4a9900
push str.STPTS
push 0x4a9c00
push str._s_s_s_s
push 0x4a9a00
call fcn.004015c0
push 0x48a470
push 0x4a9a00
call fcn.0044c7ec
add esp, 0x2c
mov dword [0x630d9c], eax
test eax, eax
je 0x405898
push eax
push 1
push 0xbb88
push 0x4aa920
call fcn.0044ca9e
add esp, 0x10
mov esi, 0x4b64b4
mov edi, 3
nop
push dword [0x630d9c]
push 1
push 0xbb88
push 0x4aa920
call fcn.0044ca9e
mov edx, 1
add esp, 0x10
mov eax, edx
cmp ax, word [0x51910c]
jg 0x4050dd
nop word [eax + eax]
mov eax, dword [esi]
movsx ecx, dx
inc edx
movsd xmm0, qword [ecx*8 + 0x4aa920]
movsd qword [eax + ecx*8], xmm0
cmp dx, word [0x51910c]
jle 0x4050c0
add esi, 4
sub edi, 1
jne 0x405090
push dword [0x630d9c]
push 1
push 0xbb88
push 0x4aa920
call fcn.0044ca9e
push dword [0x630d9c]
push 1
push 0xbb88
push 0x4aa920
call fcn.0044ca9e
push dword [0x630d9c]
push 1
push 0xbb88
push 0x4aa920
call fcn.0044ca9e
push dword [0x630d9c]
push 1
push 0xbb88
push 0x4aa920
call fcn.0044ca9e
add esp, 0x40
mov esi, 0x4b64c4
mov edi, 3
nop
push dword [0x630d9c]
push 1
push 0xbb88
push 0x4aa920
call fcn.0044ca9e
mov edx, 1
add esp, 0x10
mov eax, edx
cmp ax, word [0x51910c]
jg 0x40519d
nop word [eax + eax]
mov eax, dword [esi]
movsx ecx, dx
inc edx
movsd xmm0, qword [ecx*8 + 0x4aa920]
movsd qword [eax + ecx*8], xmm0
cmp dx, word [0x51910c]
jle 0x405180
add esi, 4
sub edi, 1
jne 0x405150
mov eax, dword [0x630d9c]
test eax, eax
je 0x4051b7
push eax
call fcn.0044c4fe
add esp, 4
mov edi, 1
mov eax, edi
cmp ax, word [0x51910c]
jg 0x405417
lea esi, [edi + 9]
nop
push dword [0x630d94]
push 1
push 0x3c
push 0x4e779c
call fcn.0044ca9e
movss xmm0, dword [0x4e779c]
add esp, 0x10
movsx edx, di
mov eax, dword [edx*4 + 0x591a00]
movss dword [eax], xmm0
mov eax, dword [edx*4 + 0x591a00]
movss xmm0, dword [0x4e77a0]
movss dword [eax + 4], xmm0
mov eax, dword [edx*4 + 0x591a00]
mov dword [eax + 0x3c], 0
mov eax, dword [edx*4 + 0x591a00]
mov dword [eax + 0x44], 0
mov eax, dword [edx*4 + 0x591a00]
mov dword [eax + 0x38], 0
mov eax, dword [edx*4 + 0x591a00]
mov dword [eax + 0x40], 0
mov eax, dword [0x4b64b4]
movsd xmm0, qword [eax + edx*8]
mov eax, dword [edx*4 + 0x591a00]
cvtpd2ps xmm0, xmm0
movss dword [eax + 8], xmm0
mov eax, dword [0x4b64b8]
movsd xmm0, qword [eax + edx*8]
mov eax, dword [edx*4 + 0x591a00]
cvtpd2ps xmm0, xmm0
movss dword [eax + 0xc], xmm0
mov eax, dword [0x4b64bc]
movsd xmm0, qword [eax + edx*8]
mov eax, dword [edx*4 + 0x591a00]
cvtpd2ps xmm0, xmm0
movss dword [eax + 0x10], xmm0
mov eax, dword [0x4b64c4]
movsd xmm0, qword [eax + edx*8]
mov eax, dword [edx*4 + 0x591a00]
cvtpd2ps xmm0, xmm0
movss dword [eax + 0x20], xmm0
mov eax, dword [0x4b64c8]
movsd xmm0, qword [eax + edx*8]
mov eax, dword [edx*4 + 0x591a00]
cvtpd2ps xmm0, xmm0
movss dword [eax + 0x24], xmm0
mov eax, dword [0x4b64cc]
movsd xmm0, qword [eax + edx*8]
mov eax, dword [edx*4 + 0x591a00]
cvtpd2ps xmm0, xmm0
movss dword [eax + 0x28], xmm0
mov eax, dword [edx*4 + 0x591a00]
mov word [eax + 0x72], si
mov ax, word [0x4e77c2]
test ax, ax
jle 0x40531d
cmp ax, word [0x519114]
jg 0x40531d
movsd xmm0, qword [0x48bb30]
cwde
imul eax, eax, 0x5c
movss xmm1, dword [eax + 0x611880]
cvtps2pd xmm1, xmm1
jmp 0x405328
movsd xmm0, qword [0x48bb30]
movaps xmm1, xmm0
mov eax, dword [edx*4 + 0x591a00]
xor esi, esi
mulsd xmm1, xmm0
movzx eax, word [eax + 0x72]
cmp ax, 0xa
movsx ecx, ax
mov eax, dword [edx*4 + 0x591a00]
movaps xmm0, xmm1
cmovle esi, ecx
test esi, esi
jle 0x4053a5
imul ecx, esi, 0x2c
subsd xmm0, qword [ecx + 0x62fa70]
cvtpd2ps xmm0, xmm0
movss dword [eax + 0x58], xmm0
movaps xmm0, xmm1
subsd xmm0, qword [ecx + 0x62fa78]
mov eax, dword [edx*4 + 0x591a00]
cvtpd2ps xmm0, xmm0
movss dword [eax + 0x5c], xmm0
movaps xmm0, xmm1
subsd xmm0, qword [ecx + 0x62fa60]
mov eax, dword [edx*4 + 0x591a00]
cvtpd2ps xmm0, xmm0
movss dword [eax + 0x60], xmm0
subsd xmm1, qword [ecx + 0x62fa68]
jmp 0x4053f4
subsd xmm0, qword [0x611828]
cvtpd2ps xmm0, xmm0
movss dword [eax + 0x58], xmm0
movaps xmm0, xmm1
subsd xmm0, qword [0x611820]
mov eax, dword [edx*4 + 0x591a00]
cvtpd2ps xmm0, xmm0
movss dword [eax + 0x5c], xmm0
movaps xmm0, xmm1
subsd xmm0, qword [0x611868]
mov eax, dword [edx*4 + 0x591a00]
cvtpd2ps xmm0, xmm0
movss dword [eax + 0x60], xmm0
subsd xmm1, qword [0x611860]
mov eax, dword [edx*4 + 0x591a00]
inc edi
cvtpd2ps xmm0, xmm1
mov esi, 0xa
movss dword [eax + 0x64], xmm0
cmp di, word [0x51910c]
jle 0x4051d0
mov eax, dword [0x630d94]
test eax, eax
je 0x405429
push eax
call fcn.0044c4fe
add esp, 4
mov edi, 1
mov eax, edi
cmp ax, word [0x51910c]
jg 0x405498
nop dword [eax]
movsx esi, di
mov ecx, dword [esi*4 + 0x591a00]
lea eax, [ecx + 0x18]
push eax
lea eax, [ecx + 0x14]
push eax
lea eax, [ecx + 0x1c]
push eax
lea eax, [ecx + 0x10]
push eax
lea eax, [ecx + 0xc]
push eax
lea eax, [ecx + 8]
push eax
call fcn.00403700
mov ecx, dword [esi*4 + 0x591a00]
lea eax, [ecx + 0x30]
push eax
lea eax, [ecx + 0x2c]
push eax
lea eax, [ecx + 0x34]
push eax
lea eax, [ecx + 0x28]
push eax
lea eax, [ecx + 0x24]
push eax
lea eax, [ecx + 0x20]
push eax
call fcn.00403700
inc edi
add esp, 0x30
cmp di, word [0x51910c]
jle 0x405440
movss xmm0, dword [0x4f3664]
sub esp, 8
movzx eax, word [0x51910c]
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
movss xmm0, dword [0x4f3660]
cvtps2pd xmm0, xmm0
push eax
sub esp, 8
movsd qword [esp], xmm0
call fcn.004022c0
movzx eax, word [0x51910c]
add esp, 0x14
movsd xmm0, qword [0x611850]
push 1
push eax
sub esp, 0x10
movsd qword [esp + 8], xmm0
movsd xmm0, qword [0x611858]
movsd qword [esp], xmm0
call fcn.00401890
mov ax, word [0x51910c]
mov edx, 1
movss xmm1, dword [0x48bc40]
mov edi, edx
add esp, 0x18
cmp di, ax
jg 0x40557f
nop dword [eax + eax]
movsx ecx, dx
inc edx
mov eax, dword [ecx*4 + 0x591a00]
movss xmm0, dword [eax + 0x14]
xorps xmm0, xmm1
movss dword [eax + 0x14], xmm0
mov eax, dword [ecx*4 + 0x591a00]
movss xmm0, dword [eax + 0x18]
xorps xmm0, xmm1
movss dword [eax + 0x18], xmm0
mov eax, dword [ecx*4 + 0x591a00]
movss xmm0, dword [eax + 0x2c]
xorps xmm0, xmm1
movss dword [eax + 0x2c], xmm0
mov eax, dword [ecx*4 + 0x591a00]
movss xmm0, dword [eax + 0x30]
xorps xmm0, xmm1
movss dword [eax + 0x30], xmm0
mov ax, word [0x51910c]
cmp dx, ax
jle 0x405520
movss xmm0, dword [0x4f3664]
sub esp, 8
cvtps2pd xmm0, xmm0
movzx eax, ax
movsd qword [esp], xmm0
movss xmm0, dword [0x4f3660]
cvtps2pd xmm0, xmm0
push eax
sub esp, 8
movsd qword [esp], xmm0
call fcn.004022c0
movzx eax, word [0x51910c]
add esp, 0x14
movsd xmm0, qword [0x611850]
push 0
push eax
sub esp, 0x10
movsd qword [esp + 8], xmm0
movsd xmm0, qword [0x611858]
movsd qword [esp], xmm0
call fcn.00401890
mov ax, word [0x51910c]
add esp, 0x18
mov esi, edi
cmp di, ax
jg 0x405633
nop
movsx edx, si
inc esi
mov ecx, dword [edx*4 + 0x591a00]
mov eax, dword [ecx + 0xc]
mov dword [ecx + 0x48], eax
mov ecx, dword [edx*4 + 0x591a00]
mov eax, dword [ecx + 0x10]
mov dword [ecx + 0x4c], eax
mov ecx, dword [edx*4 + 0x591a00]
mov eax, dword [ecx + 0x24]
mov dword [ecx + 0x50], eax
mov ecx, dword [edx*4 + 0x591a00]
mov eax, dword [ecx + 0x28]
mov dword [ecx + 0x54], eax
mov ax, word [0x51910c]
cmp si, ax
jle 0x4055f0
mov edx, edi
cmp di, ax
jg 0x4056a1
movss xmm1, dword [0x48bc40]
movsx ecx, dx
inc edx
mov eax, dword [ecx*4 + 0x591a00]
movss xmm0, dword [eax + 0x14]
xorps xmm0, xmm1
movss dword [eax + 0x14], xmm0
mov eax, dword [ecx*4 + 0x591a00]
movss xmm0, dword [eax + 0x18]
xorps xmm0, xmm1
movss dword [eax + 0x18], xmm0
mov eax, dword [ecx*4 + 0x591a00]
movss xmm0, dword [eax + 0x2c]
xorps xmm0, xmm1
movss dword [eax + 0x2c], xmm0
mov eax, dword [ecx*4 + 0x591a00]
movss xmm0, dword [eax + 0x30]
xorps xmm0, xmm1
movss dword [eax + 0x30], xmm0
mov ax, word [0x51910c]
cmp dx, ax
jle 0x405642
movss xmm0, dword [0x4f3664]
sub esp, 8
cvtps2pd xmm0, xmm0
movzx eax, ax
movsd qword [esp], xmm0
movss xmm0, dword [0x4f3660]
cvtps2pd xmm0, xmm0
push eax
sub esp, 8
movsd qword [esp], xmm0
call fcn.004022c0
add esp, 0x14
mov ecx, edi
cmp di, word [0x51910c]
jg 0x405749
nop
movsx eax, cx
mov edx, dword [eax*4 + 0x591a00]
movss xmm0, dword [edx + 0x24]
comiss xmm0, dword [edx + 0xc]
jbe 0x4056fa
movss dword [edx + 0xc], xmm0
mov edx, dword [eax*4 + 0x591a00]
movss xmm0, dword [edx + 0x28]
comiss xmm0, dword [edx + 0x10]
jbe 0x405711
movss dword [edx + 0x10], xmm0
mov edx, dword [eax*4 + 0x591a00]
movss xmm0, dword [edx + 0x50]
comiss xmm0, dword [edx + 0x48]
jbe 0x405728
movss dword [edx + 0x48], xmm0
mov eax, dword [eax*4 + 0x591a00]
movss xmm0, dword [eax + 0x54]
comiss xmm0, dword [eax + 0x4c]
jbe 0x40573f
movss dword [eax + 0x4c], xmm0
inc ecx
cmp cx, word [0x51910c]
jle 0x4056e0
push 0x4aa200
push 0x51920a
push str.SP_ASN
push 0x4a9c00
push str._s_s_s_s
push 0x4a9a00
call fcn.004015c0
push 0x48a574
push 0x4a9a00
call fcn.0044c7ec
mov ecx, edi
mov dword [0x630d9c], eax
add esp, 0x20
cmp cx, word [0x51910c]
jg 0x40580a
push eax
movsx esi, di
push 1
push 4
mov eax, dword [esi*4 + 0x591a00]
add eax, 0x38
push eax
call fcn.0044d1b5
push dword [0x630d9c]
mov eax, dword [esi*4 + 0x591a00]
push 1
add eax, 0x3c
push 4
push eax
call fcn.0044d1b5
push dword [0x630d9c]
mov eax, dword [esi*4 + 0x591a00]
push 1
add eax, 0x40
push 4
push eax
call fcn.0044d1b5
push dword [0x630d9c]
mov eax, dword [esi*4 + 0x591a00]
push 1
add eax, 0x44
push 4
push eax
call fcn.0044d1b5
mov eax, dword [0x630d9c]
inc edi
add esp, 0x40
cmp di, word [0x51910c]
jle 0x405792
test eax, eax
je 0x405817
push eax
call fcn.0044c4fe
add esp, 4
push 0x4aa200
push 0x51920a
push str.SP_ASNOUT
push 0x4a9c00
push str._s_s_s_s
push 0x4a9a00
call fcn.004015c0
push 0x48a574
push 0x4a9a00
call fcn.0044c7ec
add esp, 0x20
mov dword [0x630d9c], eax
test eax, eax
je 0x405898
mov esi, 1
mov ecx, esi
cmp cx, word [0x51910c]
jg 0x40588f
push eax
movsx eax, si
push 1
push 1
mov eax, dword [eax*4 + 0x591a00]
add eax, 0x71
push eax
call fcn.0044d1b5
mov eax, dword [0x630d9c]
inc esi
add esp, 0x10
cmp si, word [0x51910c]
jle 0x405865
push eax
call fcn.0044c4fe
add esp, 4
pop edi
pop esi
mov esp, ebp
pop ebp
ret