Function at 0x4024f0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
fld qword [0x460230]
fsub qword [0x455500]
mov eax, dword [0x460338]
mov dword [ebp - 4], eax
push ebx
push esi
fstp qword [ebp - 0x14]
fild dword [ebp - 4]
push edi
fstp qword [ebp - 0xc]
fld qword [ebp - 0xc]
fmul qword [ebp - 0x14]
call fcn.00424a9c
mov dword [0x460338], eax
fld qword [0x460230]
fld1
mov eax, dword [ebp + 0xc]
faddp st(1)
add eax, 4
push eax
fstp qword [0x460230]
call fcn.00423b2d
fld qword [0x460008]
mov esi, eax
fld dword [0x455da0]
add esp, 4
fld dword [0x46030c]
fadd dword [0x455b14]
mov dword [ebp - 4], esi
fsubp st(1)
fcompp
fnstsw ax
test ah, 0x41
jne 0x40257c
imul eax, dword [0x46019c], 0x4ebad42f
mov dword [0x46019c], eax
fld dword [0x455d88]
fld1
fld dword [0x456464]
fld dword [0x455b5c]
mov edi, dword [ebp + 8]
jmp 0x40259b
fxch st(1)
fxch st(3)
fxch st(2)
movzx eax, byte [edi + 0x450300]
mov byte [esi], al
fld dword [0x460094]
mov eax, dword [0x46022c]
fstp qword [ebp - 0x1c]
mov dword [ebp + 8], eax
fild dword [ebp + 8]
fstp dword [ebp + 8]
fld dword [ebp + 8]
fstp qword [ebp - 0x14]
fld dword [0x4603b8]
fadd qword [ebp - 0x14]
faddp st(4)
fld qword [ebp - 0x1c]
fsubrp st(4)
fxch st(3)
fstp dword [0x460094]
fld dword [0x4603b8]
mov eax, dword [0x462d14]
fadd st(2)
fstp dword [0x4603b8]
movzx eax, byte [eax + edi]
xor byte [esi], al
fld dword [0x460118]
fsubrp st(2)
fxch st(1)
fstp dword [0x460118]
fld dword [0x460118]
movsx eax, word [0x460148]
fstp qword [ebp - 0x14]
mov dword [ebp + 8], eax
fild dword [ebp + 8]
fstp qword [ebp - 0x1c]
fld qword [ebp - 0x1c]
fadd qword [ebp - 0x14]
inc word [0x460148]
fcompp
fnstsw ax
test ah, 1
jne 0x402663
mov ax, word [0x460408]
mov ecx, dword [0x4601f0]
dec word [0x460408]
cwde
sub ecx, eax
cmp ecx, 0x88e9806b
jg 0x40266d
fld dword [0x46030c]
fmul dword [0x456304]
fstp dword [0x46030c]
jmp 0x40266d
add dword [0x460284], 0x27ea7ee8
mov cl, byte [edi + 0x450301]
mov byte [esi + 1], cl
mov eax, dword [0x462d14]
mov al, byte [eax + edi + 1]
add edi, 2
xor al, cl
mov byte [esi + 1], al
fsubr dword [0x460198]
fstp dword [0x460198]
movzx ebx, word [esi]
mov dword [ebp + 8], ebx
lea eax, [ebx + 3]
push eax
lea eax, [edi + 0x450300]
push eax
push esi
call fcn.00424b40
fld qword [0x460128]
add ebx, 3
fld1
add esp, 0xc
fsub st(1), st(0)
add ebx, esi
fxch st(1)
fstp qword [0x460128]
mov eax, dword [0x460128]
mov ecx, dword [0x46012c]
fld qword [0x460048]
mov dword [ebp - 0xc], eax
mov dword [ebp - 8], ecx
fadd qword [ebp - 0xc]
fstp qword [ebp - 0x1c]
fld qword [0x460050]
fmul qword [ebp - 0x1c]
fstp qword [0x460050]
mov ecx, dword [0x460420]
mov eax, dword [0x460284]
sub ecx, eax
mov eax, dword [0x460414]
dec dword [0x460420]
sub eax, 0x1a3ad0b8
cmp eax, ecx
jg 0x402763
dec word [0x4600f0]
mov ecx, 0xa7280a7
dec dword [0x4601f4]
mov ax, word [0x4600f8]
movsx edx, word [0x4600f0]
cwde
sub edx, eax
mov eax, dword [0x460424]
sub ecx, eax
mov eax, dword [0x4601f4]
dec dword [0x460424]
sub ecx, eax
cmp edx, ecx
jne 0x40276d
fld qword [0x460028]
fstp st(0)
fld qword [0x460028]
fadd st(1)
fstp qword [0x460028]
jmp 0x40276d
add dword [0x4601f4], 0xd16a6c34
mov ecx, dword [0x462d14]
mov eax, ebx
add ecx, edi
xor edx, edx
sub eax, esi
cmp ebx, esi
sbb edi, edi
not edi
and edi, eax
je 0x402794
mov al, byte [ecx]
lea ecx, [ecx + 1]
xor byte [esi], al
lea esi, [esi + 1]
inc edx
cmp edx, edi
jne 0x402785
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 8]
cmp ecx, edx
je 0x4028b3
mov byte [ebx], 0
lea esi, [ebx - 3]
mov edi, dword [ebx - 3]
dec word [0x460158]
movsx eax, word [0x460014]
sub eax, 0x3931860c
mov dword [ebp + 0xc], eax
fild dword [ebp + 0xc]
fstp dword [ebp + 0xc]
fld dword [ebp + 0xc]
fstp qword [ebp - 0x1c]
fld dword [0x460410]
fsubr qword [ebp - 0x1c]
fstp qword [ebp - 0x24]
fld dword [0x4600ec]
movsx eax, word [0x460158]
fstp qword [ebp - 0x14]
mov dword [ebp + 0xc], eax
fild dword [ebp + 0xc]
fstp qword [ebp - 0x1c]
fld qword [ebp - 0x1c]
fadd qword [ebp - 0x14]
fcomp qword [ebp - 0x24]
fnstsw ax
fld dword [0x4600ec]
fld1
fld st(0)
faddp st(2)
fxch st(1)
fstp dword [0x4600ec]
dec word [0x460014]
test ah, 5
jp 0x402895
fld qword [0x4600b8]
fadd st(2)
fstp qword [0x4600b8]
fld qword [0x460288]
fsub qword [0x455fa0]
fstp qword [ebp - 0x24]
fld qword [0x4600b8]
fcomp qword [ebp - 0x24]
fnstsw ax
fld qword [0x460288]
fadd st(2)
fstp qword [0x460288]
test ah, 0x41
jp 0x402895
inc word [0x460374]
fld qword [0x4603d8]
faddp st(2)
fxch st(1)
fstp qword [0x4603d8]
fld qword [0x4603d8]
fstp st(0)
fld dword [0x4602fc]
mov ax, word [0x460374]
fstp st(0)
fld dword [0x4602fc]
fsub st(1)
fstp dword [0x4602fc]
jmp 0x402897
fstp st(1)
fld dword [0x455b5c]
sub ecx, edx
fld dword [0x455d88]
fld dword [0x456464]
mov dword [ebp + 0xc], ecx
jmp 0x402595
mov eax, dword [0x460380]
fstp st(0)
sub eax, 0x7cb2fa43
mov dword [ebp + 0xc], eax
fild dword [ebp + 0xc]
mov eax, dword [ebp - 4]
pop edi
pop esi
pop ebx
fstp qword [ebp - 0xc]
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 8]
fld qword [0x4600d8]
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], edx
fmul qword [ebp - 0xc]
fstp qword [0x4600d8]
mov esp, ebp
pop ebp
ret