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

Disassembly:
push ebp
mov ebp, esp
push ecx
push 0xa
push 0x4958f4
push 0x52520a
call fcn.00401540
movsd xmm0, qword [0x61d840]
add esp, 0xc
mulsd xmm0, qword [0x496628]
movzx eax, word [0x4ff632]
mov word [0x52510c], ax
cvtpd2ps xmm0, xmm0
movss dword [0x4ff664], xmm0
test ax, ax
jle 0x404f2a
push 0x4b6200
push 0x52520a
push 0x4958f8
push 0x4b5c00
push str._s_s_s_s
push 0x4b5a00
call fcn.00401540
push 0x4b5a00
call fcn.004026a0
push 0x495470
push 0x4b5a00
call fcn.00457e2c
add esp, 0x24
mov dword [0x63cd94], eax
movzx eax, word [0x4ff634]
mov word [0x52511e], ax
push esi
push edi
mov edi, 1
test ax, ax
jle 0x404fc3
push 0x4b6200
push 0x52520a
push 0x495908
push 0x4b5c00
push str._s_s_s_s
push 0x4b5a00
call fcn.00401540
push 0x495470
push 0x4b5a00
call fcn.00457e2c
add esp, 0x20
mov dword [0x63cd9c], eax
test eax, eax
je 0x404fc3
mov esi, edi
cmp di, word [0x52511e]
jg 0x404fba
push eax
movsx eax, si
push 1
push 0x28
lea eax, [eax + eax*4]
lea eax, [eax*8 + 0x4dfea0]
push eax
call fcn.004580de
mov eax, dword [0x63cd9c]
inc esi
add esp, 0x10
cmp si, word [0x52511e]
jle 0x404f90
push eax
call fcn.00457b3e
add esp, 4
cmp word [0x52510c], 0
jle 0x4053d9
push 0xa
push 0x4958f4
push 0x4b5900
call fcn.00401540
push 0x4b6200
push 0x4b5900
push str.STPTS
push 0x4b5c00
push str._s_s_s_s
push 0x4b5a00
call fcn.00401540
push 0x495470
push 0x4b5a00
call fcn.00457e2c
add esp, 0x2c
mov dword [0x63cd9c], eax
test eax, eax
je 0x40584b
push eax
push 1
push 0xbb88
push 0x4b6920
call fcn.004580de
add esp, 0x10
mov esi, 0x4c24b4
mov edi, 3
push dword [0x63cd9c]
push 1
push 0xbb88
push 0x4b6920
call fcn.004580de
mov edx, 1
add esp, 0x10
mov eax, edx
cmp ax, word [0x52510c]
jg 0x40508d
nop dword [eax]
mov eax, dword [esi]
movsx ecx, dx
inc edx
movsd xmm0, qword [ecx*8 + 0x4b6920]
movsd qword [eax + ecx*8], xmm0
cmp dx, word [0x52510c]
jle 0x405070
add esi, 4
sub edi, 1
jne 0x405043
push dword [0x63cd9c]
push 1
push 0xbb88
push 0x4b6920
call fcn.004580de
push dword [0x63cd9c]
push 1
push 0xbb88
push 0x4b6920
call fcn.004580de
push dword [0x63cd9c]
push 1
push 0xbb88
push 0x4b6920
call fcn.004580de
push dword [0x63cd9c]
push 1
push 0xbb88
push 0x4b6920
call fcn.004580de
add esp, 0x40
mov esi, 0x4c24c4
mov edi, 3
nop
push dword [0x63cd9c]
push 1
push 0xbb88
push 0x4b6920
call fcn.004580de
mov edx, 1
add esp, 0x10
mov eax, edx
cmp ax, word [0x52510c]
jg 0x40514d
nop word [eax + eax]
mov eax, dword [esi]
movsx ecx, dx
inc edx
movsd xmm0, qword [ecx*8 + 0x4b6920]
movsd qword [eax + ecx*8], xmm0
cmp dx, word [0x52510c]
jle 0x405130
add esi, 4
sub edi, 1
jne 0x405100
push dword [0x63cd9c]
call fcn.00457b3e
mov edi, 1
add esp, 4
mov eax, edi
cmp ax, word [0x52510c]
jg 0x4053c7
lea esi, [edi + 9]
nop word [eax + eax]
push dword [0x63cd94]
push 1
push 0x3c
push 0x4f379c
call fcn.004580de
movss xmm0, dword [0x4f379c]
add esp, 0x10
movsx edx, di
mov eax, dword [edx*4 + 0x59da00]
movss dword [eax], xmm0
mov eax, dword [edx*4 + 0x59da00]
movss xmm0, dword [0x4f37a0]
movss dword [eax + 4], xmm0
mov eax, dword [edx*4 + 0x59da00]
mov dword [eax + 0x3c], 0
mov eax, dword [edx*4 + 0x59da00]
mov dword [eax + 0x44], 0
mov eax, dword [edx*4 + 0x59da00]
mov dword [eax + 0x38], 0
mov eax, dword [edx*4 + 0x59da00]
mov dword [eax + 0x40], 0
mov eax, dword [0x4c24b4]
movsd xmm0, qword [eax + edx*8]
mov eax, dword [edx*4 + 0x59da00]
cvtpd2ps xmm0, xmm0
movss dword [eax + 8], xmm0
mov eax, dword [0x4c24b8]
movsd xmm0, qword [eax + edx*8]
mov eax, dword [edx*4 + 0x59da00]
cvtpd2ps xmm0, xmm0
movss dword [eax + 0xc], xmm0
mov eax, dword [0x4c24bc]
movsd xmm0, qword [eax + edx*8]
mov eax, dword [edx*4 + 0x59da00]
cvtpd2ps xmm0, xmm0
movss dword [eax + 0x10], xmm0
mov eax, dword [0x4c24c4]
movsd xmm0, qword [eax + edx*8]
mov eax, dword [edx*4 + 0x59da00]
cvtpd2ps xmm0, xmm0
movss dword [eax + 0x20], xmm0
mov eax, dword [0x4c24c8]
movsd xmm0, qword [eax + edx*8]
mov eax, dword [edx*4 + 0x59da00]
cvtpd2ps xmm0, xmm0
movss dword [eax + 0x24], xmm0
mov eax, dword [0x4c24cc]
movsd xmm0, qword [eax + edx*8]
mov eax, dword [edx*4 + 0x59da00]
cvtpd2ps xmm0, xmm0
movss dword [eax + 0x28], xmm0
mov eax, dword [edx*4 + 0x59da00]
mov word [eax + 0x72], si
mov ax, word [0x4f37c2]
test ax, ax
jle 0x4052cd
cmp ax, word [0x525114]
jg 0x4052cd
movsd xmm0, qword [0x4966c8]
cwde
imul eax, eax, 0x5c
movss xmm1, dword [eax + 0x61d880]
cvtps2pd xmm1, xmm1
jmp 0x4052d8
movsd xmm0, qword [0x4966c8]
movaps xmm1, xmm0
mov eax, dword [edx*4 + 0x59da00]
xor esi, esi
mulsd xmm1, xmm0
movzx eax, word [eax + 0x72]
cmp ax, 0xa
movsx ecx, ax
mov eax, dword [edx*4 + 0x59da00]
movaps xmm0, xmm1
cmovle esi, ecx
test esi, esi
jle 0x405355
imul ecx, esi, 0x2c
subsd xmm0, qword [ecx + 0x63ba70]
cvtpd2ps xmm0, xmm0
movss dword [eax + 0x58], xmm0
movaps xmm0, xmm1
subsd xmm0, qword [ecx + 0x63ba78]
mov eax, dword [edx*4 + 0x59da00]
cvtpd2ps xmm0, xmm0
movss dword [eax + 0x5c], xmm0
movaps xmm0, xmm1
subsd xmm0, qword [ecx + 0x63ba60]
mov eax, dword [edx*4 + 0x59da00]
cvtpd2ps xmm0, xmm0
movss dword [eax + 0x60], xmm0
subsd xmm1, qword [ecx + 0x63ba68]
jmp 0x4053a4
subsd xmm0, qword [0x61d828]
cvtpd2ps xmm0, xmm0
movss dword [eax + 0x58], xmm0
movaps xmm0, xmm1
subsd xmm0, qword [0x61d820]
mov eax, dword [edx*4 + 0x59da00]
cvtpd2ps xmm0, xmm0
movss dword [eax + 0x5c], xmm0
movaps xmm0, xmm1
subsd xmm0, qword [0x61d868]
mov eax, dword [edx*4 + 0x59da00]
cvtpd2ps xmm0, xmm0
movss dword [eax + 0x60], xmm0
subsd xmm1, qword [0x61d860]
mov eax, dword [edx*4 + 0x59da00]
inc edi
cvtpd2ps xmm0, xmm1
mov esi, 0xa
movss dword [eax + 0x64], xmm0
cmp di, word [0x52510c]
jle 0x405180
mov eax, dword [0x63cd94]
test eax, eax
je 0x4053d9
push eax
call fcn.00457b3e
add esp, 4
mov edi, 1
mov eax, edi
cmp ax, word [0x52510c]
jg 0x405448
nop dword [eax]
movsx esi, di
mov ecx, dword [esi*4 + 0x59da00]
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.004035b0
mov ecx, dword [esi*4 + 0x59da00]
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.004035b0
inc edi
add esp, 0x30
cmp di, word [0x52510c]
jle 0x4053f0
movss xmm0, dword [0x4ff664]
sub esp, 8
movzx eax, word [0x52510c]
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
movss xmm0, dword [0x4ff660]
cvtps2pd xmm0, xmm0
push eax
sub esp, 8
movsd qword [esp], xmm0
call fcn.00402240
movzx eax, word [0x52510c]
add esp, 0x14
movsd xmm0, qword [0x61d850]
push 1
push eax
sub esp, 0x10
movsd qword [esp + 8], xmm0
movsd xmm0, qword [0x61d858]
movsd qword [esp], xmm0
call fcn.004017f0
mov ax, word [0x52510c]
mov edx, 1
movss xmm1, dword [0x496800]
mov edi, edx
add esp, 0x18
cmp di, ax
jg 0x40552f
nop dword [eax + eax]
movsx ecx, dx
inc edx
mov eax, dword [ecx*4 + 0x59da00]
movss xmm0, dword [eax + 0x14]
xorps xmm0, xmm1
movss dword [eax + 0x14], xmm0
mov eax, dword [ecx*4 + 0x59da00]
movss xmm0, dword [eax + 0x18]
xorps xmm0, xmm1
movss dword [eax + 0x18], xmm0
mov eax, dword [ecx*4 + 0x59da00]
movss xmm0, dword [eax + 0x2c]
xorps xmm0, xmm1
movss dword [eax + 0x2c], xmm0
mov eax, dword [ecx*4 + 0x59da00]
movss xmm0, dword [eax + 0x30]
xorps xmm0, xmm1
movss dword [eax + 0x30], xmm0
mov ax, word [0x52510c]
cmp dx, ax
jle 0x4054d0
movss xmm0, dword [0x4ff664]
sub esp, 8
cvtps2pd xmm0, xmm0
movzx eax, ax
movsd qword [esp], xmm0
movss xmm0, dword [0x4ff660]
cvtps2pd xmm0, xmm0
push eax
sub esp, 8
movsd qword [esp], xmm0
call fcn.00402240
movzx eax, word [0x52510c]
add esp, 0x14
movsd xmm0, qword [0x61d850]
push 0
push eax
sub esp, 0x10
movsd qword [esp + 8], xmm0
movsd xmm0, qword [0x61d858]
movsd qword [esp], xmm0
call fcn.004017f0
mov ax, word [0x52510c]
add esp, 0x18
mov esi, edi
cmp di, ax
jg 0x4055e3
nop
movsx edx, si
inc esi
mov ecx, dword [edx*4 + 0x59da00]
mov eax, dword [ecx + 0xc]
mov dword [ecx + 0x48], eax
mov ecx, dword [edx*4 + 0x59da00]
mov eax, dword [ecx + 0x10]
mov dword [ecx + 0x4c], eax
mov ecx, dword [edx*4 + 0x59da00]
mov eax, dword [ecx + 0x24]
mov dword [ecx + 0x50], eax
mov ecx, dword [edx*4 + 0x59da00]
mov eax, dword [ecx + 0x28]
mov dword [ecx + 0x54], eax
mov ax, word [0x52510c]
cmp si, ax
jle 0x4055a0
mov edx, edi
cmp di, ax
jg 0x405651
movss xmm1, dword [0x496800]
movsx ecx, dx
inc edx
mov eax, dword [ecx*4 + 0x59da00]
movss xmm0, dword [eax + 0x14]
xorps xmm0, xmm1
movss dword [eax + 0x14], xmm0
mov eax, dword [ecx*4 + 0x59da00]
movss xmm0, dword [eax + 0x18]
xorps xmm0, xmm1
movss dword [eax + 0x18], xmm0
mov eax, dword [ecx*4 + 0x59da00]
movss xmm0, dword [eax + 0x2c]
xorps xmm0, xmm1
movss dword [eax + 0x2c], xmm0
mov eax, dword [ecx*4 + 0x59da00]
movss xmm0, dword [eax + 0x30]
xorps xmm0, xmm1
movss dword [eax + 0x30], xmm0
mov ax, word [0x52510c]
cmp dx, ax
jle 0x4055f2
movss xmm0, dword [0x4ff664]
sub esp, 8
cvtps2pd xmm0, xmm0
movzx eax, ax
movsd qword [esp], xmm0
movss xmm0, dword [0x4ff660]
cvtps2pd xmm0, xmm0
push eax
sub esp, 8
movsd qword [esp], xmm0
call fcn.00402240
add esp, 0x14
mov ecx, edi
cmp di, word [0x52510c]
jg 0x4056f9
nop
movsx eax, cx
mov edx, dword [eax*4 + 0x59da00]
movss xmm0, dword [edx + 0x24]
comiss xmm0, dword [edx + 0xc]
jbe 0x4056aa
movss dword [edx + 0xc], xmm0
mov edx, dword [eax*4 + 0x59da00]
movss xmm0, dword [edx + 0x28]
comiss xmm0, dword [edx + 0x10]
jbe 0x4056c1
movss dword [edx + 0x10], xmm0
mov edx, dword [eax*4 + 0x59da00]
movss xmm0, dword [edx + 0x50]
comiss xmm0, dword [edx + 0x48]
jbe 0x4056d8
movss dword [edx + 0x48], xmm0
mov eax, dword [eax*4 + 0x59da00]
movss xmm0, dword [eax + 0x54]
comiss xmm0, dword [eax + 0x4c]
jbe 0x4056ef
movss dword [eax + 0x4c], xmm0
inc ecx
cmp cx, word [0x52510c]
jle 0x405690
push 0x4b6200
push 0x52520a
push str.SP_ASN
push 0x4b5c00
push str._s_s_s_s
push 0x4b5a00
call fcn.00401540
push 0x495578
push 0x4b5a00
call fcn.00457e2c
add esp, 0x20
mov dword [0x63cd9c], eax
test eax, eax
je 0x4057cc
mov ecx, edi
cmp cx, word [0x52510c]
jg 0x4057be
push eax
movsx esi, di
push 1
push 4
mov eax, dword [esi*4 + 0x59da00]
add eax, 0x38
push eax
call fcn.004587f5
push dword [0x63cd9c]
mov eax, dword [esi*4 + 0x59da00]
push 1
add eax, 0x3c
push 4
push eax
call fcn.004587f5
push dword [0x63cd9c]
mov eax, dword [esi*4 + 0x59da00]
push 1
add eax, 0x40
push 4
push eax
call fcn.004587f5
push dword [0x63cd9c]
mov eax, dword [esi*4 + 0x59da00]
push 1
add eax, 0x44
push 4
push eax
call fcn.004587f5
mov eax, dword [0x63cd9c]
inc edi
add esp, 0x40
cmp di, word [0x52510c]
jle 0x405746
push eax
call fcn.00457b3e
add esp, 4
mov edi, 1
push 0x4b6200
push 0x52520a
push str.SP_ASNOUT
push 0x4b5c00
push str._s_s_s_s
push 0x4b5a00
call fcn.00401540
push 0x495578
push 0x4b5a00
call fcn.00457e2c
add esp, 0x20
mov dword [0x63cd9c], eax
test eax, eax
je 0x40584b
mov esi, 1
cmp di, word [0x52510c]
jg 0x405842
push eax
movsx eax, si
push 1
push 1
mov eax, dword [eax*4 + 0x59da00]
add eax, 0x71
push eax
call fcn.004587f5
mov eax, dword [0x63cd9c]
inc esi
add esp, 0x10
cmp si, word [0x52510c]
jle 0x405818
push eax
call fcn.00457b3e
add esp, 4
pop edi
pop esi
mov esp, ebp
pop ebp
ret