Function at 0x499280
Capabilities:
Encode data using xor

Disassembly:
fld qword [esp + 4]
sub esp, 0x6c
sub esp, 8
fstp qword [esp]
call fcn.00434940
add esp, 8
cmp eax, 0xffffffff
je 0x49926f
cmp eax, 1
je 0x499259
fld qword [esp + 0x70]
sub esp, 8
fstp qword [esp]
call fcn.00434980
add esp, 8
test eax, eax
je 0x498d53
mov eax, dword [esp + 0x78]
push eax
push 0x541c30
call fcn.00495490
add esp, 8
add esp, 0x6c
ret
push ebx
mov ebx, dword [esp + 0x80]
test ebx, ebx
jne 0x498d98
fld qword [esp + 0x74]
fistp dword [esp + 8]
fild dword [esp + 8]
fld qword [esp + 0x74]
fucompp
fnstsw ax
test ah, 0x44
jp 0x498d98
mov eax, dword [esp + 8]
cmp eax, 0x80000000
je 0x498d98
mov ecx, dword [esp + 0x7c]
push 0xa
push ecx
push eax
call fcn.004956e0
add esp, 0xc
pop ebx
add esp, 0x6c
ret
fld qword [esp + 0x74]
push esi
fcomp qword [0x53d6d0]
mov esi, dword [esp + 0x80]
push edi
fnstsw ax
test ah, 5
jp 0x498dc4
fld qword [esp + 0x7c]
mov word [esi], 0x2d
fchs
add esi, 2
fstp qword [esp + 0x7c]
fld qword [esp + 0x7c]
lea edx, [esp + 0x14]
push edx
sub esp, 8
fstp qword [esp]
call fcn.004d43b0
mov eax, dword [esp + 0x20]
fstp st(0)
dec eax
mov dword [esp + 0x20], eax
fild dword [esp + 0x20]
add esp, 4
fmul qword [0x541c28]
fstp qword [esp]
call fcn.00495400
fld qword [esp + 0x84]
mov edi, eax
neg eax
fstp qword [esp]
push eax
call fcn.00495430
fst qword [esp + 0x2c]
add esp, 0xc
call fcn.004ae0e0
test eax, eax
jne 0x498e38
fld qword [esp + 0x7c]
dec edi
sub esp, 8
mov ecx, edi
fstp qword [esp]
neg ecx
push ecx
call fcn.00495430
fstp qword [esp + 0x2c]
add esp, 0xc
fld qword [esp + 0x20]
call fcn.004ae0e0
cmp eax, 0xa
jl 0x498e62
fld qword [esp + 0x7c]
inc edi
sub esp, 8
mov edx, edi
fstp qword [esp]
neg edx
push edx
call fcn.00495430
fstp qword [esp + 0x2c]
add esp, 0xc
mov eax, ebx
dec eax
mov dword [esp + 0x18], esi
je 0x498ec7
dec eax
je 0x498eac
dec eax
je 0x498ea5
test edi, edi
jge 0x498e95
cmp edi, 0xfffffffa
jle 0x498e95
mov ebx, dword [esp + 0x8c]
mov eax, ebx
neg eax
cmp edi, eax
jge 0x498e8e
or edi, 0xffffffff
sub edi, ebx
mov ecx, 2
jmp 0x498ee3
mov ebx, dword [esp + 0x8c]
xor ecx, ecx
cmp edi, ebx
setge cl
jmp 0x498ee3
mov ecx, 1
jmp 0x498edb
test edi, edi
mov ebx, dword [esp + 0x8c]
jge 0x498ebe
mov ecx, 2
jmp 0x498ee3
xor ecx, ecx
cmp edi, ebx
setge cl
jmp 0x498ee3
test edi, edi
jge 0x498ed9
mov ebx, dword [esp + 0x8c]
mov ecx, 3
jmp 0x498ee3
xor ecx, ecx
mov ebx, dword [esp + 0x8c]
inc ebx
fnstcw word [esp + 0xc]
mov ax, word [esp + 0xc]
or ax, 0xc3f
mov word [esp + 0x10], ax
fldcw word [esp + 0x10]
cmp ecx, 3
ja case.default.0x498f02
jmp dword [ecx*4 + 0x49929c]
fld qword [esp + 0x20]
mov dword [esp + 0x18], esi
mov word [esi], 0x30
mov dword [esp + 0x10], 0
add esi, 2
call fcn.004ae0e0
test eax, eax
mov dword [esp + 0x1c], eax
fild dword [esp + 0x1c]
fsubr qword [esp + 0x20]
fmul qword [0x5418b0]
je 0x498f48
add al, 0x30
movsx cx, al
mov word [esi], cx
add esi, 2
test edi, edi
jle 0x498f7a
push ebp
mov ebp, edi
xor edi, edi
mov dword [esp + 0x14], ebp
fld st(0)
call fcn.004ae0e0
mov dword [esp + 0x20], eax
fisub dword [esp + 0x20]
add al, 0x30
movsx dx, al
mov word [esi], dx
add esi, 2
dec ebp
fmul qword [0x5418b0]
jne 0x498f55
pop ebp
cmp dword [esp + 0x88], 1
jne 0x498f8c
mov dword [esp + 0x10], 0
mov ecx, dword [esp + 0x10]
lea eax, [ebx - 1]
cmp ecx, eax
jge 0x499130
mov word [esi], 0x2e
add esi, 2
sub eax, ecx
mov ebx, eax
jmp 0x498fb0
fld qword [0x53d6d0]
fld st(1)
fucompp
fnstsw ax
test ah, 0x44
jp 0x498fc8
mov word [esi], 0x30
jmp 0x498fe6
fld st(0)
call fcn.004ae0e0
mov dword [esp + 0x1c], eax
fisub dword [esp + 0x1c]
add al, 0x30
movsx ax, al
mov word [esi], ax
fmul qword [0x5418b0]
add esi, 2
dec ebx
jne 0x498fb0
jmp 0x499130
mov word [esi], 0x30
add esi, 2
mov word [esi], 0x30
add esi, 2
mov word [esi], 0x2e
add esi, 2
xor eax, eax
inc edi
cmp edi, 0xa
jge 0x499025
cmp eax, ebx
jge 0x49905b
add esi, 2
mov word [esi - 2], 0x30
inc eax
inc edi
cmp edi, 0xa
jl 0x499011
cmp eax, ebx
jge 0x49905b
fld qword [esp + 0x20]
sub ebx, eax
nop
fld st(0)
call fcn.004ae0e0
mov dword [esp + 0x1c], eax
fisub dword [esp + 0x1c]
add al, 0x30
movsx cx, al
mov word [esi], cx
add esi, 2
dec ebx
fmul qword [0x5418b0]
jne 0x499030
xor edi, edi
jmp 0x499130
fld qword [esp + 0x20]
xor edi, edi
jmp 0x499130
mov word [esi], 0x30
add esi, 2
mov word [esi], 0x30
add esi, 2
mov word [esi], 0x2e
add esi, 2
cmp edi, 0xffffffff
jge 0x49909d
or edx, 0xffffffff
sub edx, edi
mov ecx, edx
shr ecx, 1
mov edi, esi
mov eax, 0x300030
rep stosd dword es:[edi], eax
adc ecx, ecx
rep stosw word es:[edi], ax
lea esi, [esi + edx*2]
test ebx, ebx
fld qword [esp + 0x20]
jle 0x4990c9
fld st(0)
call fcn.004ae0e0
mov dword [esp + 0x1c], eax
fisub dword [esp + 0x1c]
add al, 0x30
movsx dx, al
mov word [esi], dx
add esi, 2
dec ebx
fmul qword [0x5418b0]
jne 0x4990a5
xor edi, edi
jmp 0x499130
fld qword [esp + 0x20]
call fcn.004ae0e0
mov dword [esp + 0x1c], eax
fild dword [esp + 0x1c]
add al, 0x30
movsx ax, al
mov word [esi], ax
fsubr qword [esp + 0x20]
add esi, 2
cmp ebx, 1
fmul qword [0x5418b0]
jle 0x499130
mov word [esi], 0x2e
add esi, 2
dec ebx
test ebx, ebx
jle 0x499130
fld st(0)
call fcn.004ae0e0
mov dword [esp + 0x1c], eax
fisub dword [esp + 0x1c]
add al, 0x30
movsx cx, al
mov word [esi], cx
add esi, 2
dec ebx
fmul qword [0x5418b0]
jne 0x499106
jmp 0x499130
fld qword [esp + 0x20]
call fcn.004ae0e0
cmp eax, 4
mov edx, dword [esp + 0x84]
jle 0x49916f
lea eax, [esi - 2]
cmp eax, edx
jb 0x49916f
jmp 0x499150
mov cx, word [eax]
cmp cx, 0x30
jb 0x499168
inc ecx
cmp cx, 0x3a
mov word [eax], cx
jne 0x49916f
mov word [eax], 0x30
sub eax, 2
cmp eax, edx
jae 0x499150
mov eax, dword [esp + 0x88]
test eax, eax
mov ebx, 0x30
jne 0x499198
cmp word [esi - 2], bx
jne 0x49918e
add esi, 0xfffffffe
cmp word [esi - 2], bx
je 0x499185
cmp word [esi - 2], 0x2e
jne 0x499198
add esi, 0xfffffffe
test edi, edi
je 0x499226
cmp edx, esi
mov eax, edx
jae 0x4991b2
cmp word [eax], bx
jne 0x4991b2
add eax, 2
cmp eax, esi
jb 0x4991a6
cmp esi, eax
jne 0x4991c1
mov word [esi], 0x31
add esi, 2
inc edi
jmp 0x4991e2
cmp esi, eax
mov ecx, esi
jbe 0x4991d3
sub ecx, 2
cmp word [ecx], bx
jne 0x4991d3
cmp ecx, eax
ja 0x4991c7
cmp eax, ecx
jne 0x4991e2
sub esi, eax
sar esi, 1
lea edi, [edi + esi - 1]
lea esi, [ecx + 2]
mov word [esi], 0x65
add esi, 2
test edi, edi
jle 0x4991f6
mov word [esi], 0x2b
add esi, 2
push 0xa
lea edx, [esp + 0x2c]
push edx
push edi
call fcn.004956e0
mov eax, dword [esp + 0x34]
add esp, 0xc
test ax, ax
lea ecx, [esp + 0x28]
je 0x499226
mov word [esi], ax
add ecx, 2
xor eax, eax
mov ax, word [ecx]
add esi, 2
test ax, ax
jne 0x499213
mov eax, dword [esp + 0x18]
test eax, eax
pop edi
mov word [esi], 0
pop esi
je 0x499250
cmp word [eax], bx
jne 0x499250
cmp word [eax + 2], 0x2e
je 0x499250
mov cx, word [eax + 2]
mov word [eax], cx
add eax, 2
test cx, cx
jne 0x499241
fldcw word [esp + 4]
pop ebx
add esp, 0x6c
ret
mov eax, dword [esp + 0x78]
push eax
push str.Infinity
call fcn.00495490
add esp, 8
add esp, 0x6c
ret
mov ecx, dword [esp + 0x78]
mov edx, str._Infinity
mov al, 0x2d
lea ebx, [ebx]
movsx ax, al
mov word [ecx], ax
mov al, byte [edx + 1]
add ecx, 2
inc edx
test al, al
jne 0x499280
mov word [ecx], 0
add esp, 0x6c
ret