Function at 0x40b450
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
or edi, 0xffffffff
add dword [0x44baf4], edi
mov eax, dword [0x43d4c8]
mov ecx, dword [0x44baf4]
sub eax, 0x60a0d0a1
or eax, 0x40960010
xor ecx, 0x8a639497
cmp ecx, eax
jge 0x40b493
mov edx, dword [0x446d8c]
imul edx, edx, 0x338c14d7
mov dword [0x446d8c], edx
jmp 0x40b4c0
mov eax, dword [0x43f228]
sar eax, 7
sub eax, 0xbcc40e6
and eax, 0x30602e62
cmp eax, 0xdc2e592c
jle 0x40b4c0
movzx ecx, word [0x477600]
add ecx, 0x65b3d670
mov word [0x477600], cx
fld dword [0x48e950]
fadd dword [0x482c38]
fstp dword [0x48e950]
fld dword [0x489de8]
fld qword [0x45d470]
fld qword [0x470f30]
fmulp st(2)
fxch st(1)
fcompi st(1)
fstp st(0)
fld1
jb 0x40b574
fld dword [0x48390c]
fmul qword [0x45b580]
fld qword [0x45c310]
fld dword [0x489780]
fsubp st(2)
fld qword [0x45b580]
fsub st(3)
fstp qword [0x45b580]
fld qword [0x45c310]
fadd st(3)
fstp qword [0x45c310]
fcompi st(1)
fstp st(0)
jb 0x40b574
fld dword [0x490d84]
fstp st(0)
fld dword [0x48a020]
fstp st(0)
fld dword [0x4890fc]
fstp st(0)
fld dword [0x489848]
fstp st(0)
fld dword [0x47ff94]
fstp st(0)
fld dword [0x490d84]
fadd st(1)
fstp dword [0x490d84]
fld dword [0x489848]
fsub st(1)
fstp dword [0x489848]
fld dword [0x48dc40]
fadd dword [0x487558]
fld qword [0x46b7c8]
fsub dword [0x48fb30]
fld dword [0x48fb30]
fadd st(3)
fstp dword [0x48fb30]
fld qword [0x46b7c8]
fsubrp st(3)
fxch st(2)
fstp qword [0x46b7c8]
fxch st(1)
fcompi st(1)
fstp st(0)
jbe 0x40b5bc
and dword [0x44cb20], 0x6d05e292
mov edx, dword [ebp + 0xc]
add edx, 4
push edx
call fcn.0042af90
add word [0x476af4], di
mov esi, eax
mov eax, dword [0x442974]
mov cx, word [0x476af4]
mov dx, word [0x475770]
sar eax, 4
imul eax, eax, 0x307ad7f
movsx ecx, cx
sub ecx, eax
movsx eax, dx
not eax
or eax, 0x4a52e0f9
add esp, 4
cmp ecx, eax
jge 0x40b64c
mov ecx, dword [0x44d38c]
and ecx, 0xffd2ad47
shl ecx, 9
xor ecx, 0xef1f3da4
cmp ecx, 0x112cc022
jge 0x40b64c
fld dword [0x48f804]
fstp st(0)
fld qword [0x466a10]
fstp st(0)
fld dword [0x4834cc]
fstp st(0)
fld qword [0x466a10]
fld1
fadd st(1), st(0)
fxch st(1)
fstp qword [0x466a10]
jmp 0x40b64e
fld1
mov dx, word [0x4754e4]
mov ecx, dword [0x44398c]
mov edi, dword [ebp + 8]
movsx eax, dx
sar eax, 0xa
shl ecx, 7
lea eax, [ecx + eax - 0x5687169c]
and dword [0x44573c], eax
mov dword [ebp - 4], esi
fld dword [0x488b98]
fsub qword [0x45ba98]
fadd qword [0x452f40]
mov dl, byte [edi + 0x437248]
fstp qword [0x452f40]
mov byte [esi], dl
xor dword [0x43c768], 0x8d4e3c75
mov eax, dword [0x491c20]
mov cl, byte [eax + edi]
xor byte [esi], cl
mov eax, dword [0x443d38]
movzx edx, word [0x476d6a]
sar eax, 5
imul eax, eax, 0xfe47aba3
or eax, 0xd5b38704
sub edx, eax
mov word [0x476d6a], dx
mov edx, 1
fld dword [0x48d664]
add esi, edx
fld dword [0x488128]
add edi, edx
fmul dword [0x483140]
fadd qword [0x474a90]
fsubp st(1)
fstp dword [0x48d664]
fld qword [0x474a90]
fsub st(1)
fstp qword [0x474a90]
mov eax, dword [0x43f214]
and eax, 0x2db26dd3
cmp eax, 0x2234962f
jl 0x40b726
mov cx, word [0x4762b6]
movsx eax, cx
or dword [0x43ebfc], eax
movzx eax, byte [edi + 0x437248]
mov byte [esi], al
fld dword [0x488824]
fsub qword [0x467f98]
mov ecx, dword [0x491c20]
fstp dword [0x488824]
movzx eax, byte [ecx + edi]
xor byte [esi], al
sub esi, edx
fld dword [0x47ed5c]
add edi, edx
fmul qword [0x45ea48]
fadd dword [0x488428]
fstp dword [0x488428]
fsubr qword [0x45ea48]
fstp qword [0x45ea48]
mov eax, dword [0x43c834]
mov ecx, dword [0x4435c0]
or eax, ecx
mov ecx, dword [0x444164]
or ecx, eax
mov dword [0x43c834], ecx
dec dword [0x43fca4]
mov eax, dword [0x43fca4]
movzx ecx, word [0x479e7c]
add eax, 0x49f0e432
and ecx, eax
and ecx, 0xd4f88f38
mov word [0x479e7c], cx
movzx ecx, word [esi]
add dword [0x445a68], edx
mov ax, word [0x475a0e]
mov ebx, dword [0x445a68]
cwde
add eax, 0x65eb4ff4
cmp ebx, eax
je 0x40b7ec
add word [0x4782e4], dx
mov dx, word [0x4782e4]
mov word [0x476c58], dx
jmp 0x40b80c
mov eax, dword [0x444e94]
movzx edx, word [0x478bb0]
xor eax, 0x617e22a9
add edx, eax
mov word [0x478bb0], dx
dec dword [0x444e94]
movzx ebx, cx
lea eax, [ebx + 3]
push eax
lea ecx, [edi + 0x437248]
push ecx
push esi
call fcn.0042bf30
mov eax, dword [0x442000]
sub eax, 0x5905e0b6
or eax, 0x164dd5e5
sub dword [0x43f7b4], eax
movzx eax, word [0x47983e]
sub eax, 0x42408114
mov word [0x47983e], ax
add esp, 0xc
fld dword [0x4850fc]
mov edx, esi
fmul dword [0x487f7c]
lea ecx, [ebx + esi + 3]
fsub dword [0x490bb8]
fld dword [0x489b40]
fmul dword [0x47f354]
fld dword [0x489b40]
fld1
fsub st(1), st(0)
fxch st(1)
fstp dword [0x489b40]
fxch st(1)
fcompi st(2)
fstp st(1)
jbe 0x40b8a1
mov ax, word [0x477224]
cwde
xor eax, 0x3181ba4b
cmp eax, 0xad3828e9
jg 0x40b8a1
mov ax, word [0x4772e4]
mov eax, dword [0x491c20]
inc dword [0x43d4c4]
add edi, eax
mov eax, dword [0x43d4c4]
imul eax, eax, 0xd75981a
and eax, 0x6333eb6d
mov dword [0x43edc0], eax
cmp esi, ecx
je 0x40b905
fld dword [0x485f70]
inc edx
fld dword [0x486538]
inc edi
fmul qword [0x473e70]
fsubp st(1)
fstp dword [0x485f70]
mov al, byte [edi - 1]
xor byte [edx - 1], al
fld dword [0x48d86c]
fadd qword [0x463a68]
fadd dword [0x48c4ac]
fstp dword [0x48c4ac]
cmp edx, ecx
jne 0x40b8c7
mov edx, dword [0x446728]
shl edx, 6
cmp edx, 0xb52ad999
jl 0x40b931
mov eax, dword [0x440b1c]
or eax, 0x7fde377f
cmp eax, 0x4ca30420
je 0x40b931
mov dword [0x445bb8], 0x3646fa38
cmp dword [ebp + 0xc], ebx
je 0x40ba60
and dword [0x43e554], 0x58b7e20f
mov byte [ecx], 0
movzx edx, word [0x4758fc]
add edx, 0x41c0ad4e
mov word [0x4758fc], dx
mov eax, dword [0x442680]
not eax
xor eax, 0x51c7e133
and dword [0x444844], eax
mov edi, dword [ecx - 3]
fld dword [0x49089c]
sub ecx, 3
fld dword [0x484730]
fmul dword [0x48dd04]
fsubp st(1)
fld qword [0x45fa48]
fcompi st(1)
fstp st(0)
jb 0x40b9c8
mov eax, dword [0x4426f0]
mov edx, dword [0x448370]
inc dword [0x448370]
sar eax, 3
add eax, 0x145ddeb0
xor edx, 0x12801fd4
and eax, 0xa39817d4
or edx, 0x2521e023
cmp eax, edx
jl 0x40b9e7
mov eax, dword [0x44bbec]
jmp 0x40b9e7
mov dx, word [0x4783e8]
movsx eax, dx
mov edx, dword [0x43f754]
or edx, eax
mov word [0x4783e8], dx
dec dword [0x43f754]
mov eax, dword [0x44996c]
sar eax, 5
and eax, 0x3d0ee9f9
mov esi, ecx
cmp eax, 0xd6b03e94
jne 0x40ba29
inc word [0x47afb8]
mov cx, word [0x47afb8]
mov edx, dword [0x4419f4]
movsx eax, cx
imul edx, eax
cmp edx, 0x92675dc1
jle 0x40ba29
and dword [0x443170], 0xa3be77bb
dec dword [0x44b980]
mov eax, dword [0x44b980]
sub dword [ebp + 0xc], ebx
sub eax, 0x4a529614
cmp eax, 0xf4be2e27
jne 0x40b677
movzx ecx, word [0x4771e8]
add ecx, 0x53625037
mov word [0x4771e8], cx
jmp 0x40b677
movzx edx, word [0x47d186]
fstp st(0)
mov eax, dword [ebp - 4]
imul edx, edx, 0xfafebee7
pop edi
pop esi
mov word [0x47d186], dx
pop ebx
mov esp, ebp
pop ebp
ret