Function at 0x40d0b0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ecx
mov eax, dword [0x44c02c]
cmp eax, 0xa29acf29
jl 0x40d0ce
fld dword [0x4b6944]
fstp dword [0x4b01e0]
jmp 0x40d0e0
fld dword [0x4bb16c]
fsub qword [0x45f488]
fstp dword [0x4bb16c]
fld dword [0x4b747c]
push ebx
fadd qword [0x493000]
mov ebx, 1
mov eax, dword [ebp + 0xc]
push esi
fstp dword [0x4b747c]
add dword [0x44ec30], ebx
mov ecx, dword [0x45a8c4]
mov edx, dword [0x44ec30]
imul ecx, edx
mov dword [0x45a8c4], ecx
add eax, 4
fld dword [0x4a7ff8]
push edi
fadd qword [0x4658e0]
push eax
fld qword [0x490810]
fld qword [0x45cfb8]
fsubp st(2)
fsubrp st(1)
fstp qword [0x490810]
fld qword [0x4658e0]
fsub qword [0x43af78]
fstp qword [0x4658e0]
call fcn.0040c280
fld qword [0x494dd0]
add esp, 4
fstp dword [0x4be7ac]
mov esi, eax
fld dword [0x4c1db0]
mov dword [ebp - 4], esi
fld dword [0x4ae614]
fsub qword [0x496680]
fadd dword [0x4a7ad8]
fxch st(1)
fucompi st(1)
fstp st(0)
lahf
test ah, 0x44
jp 0x40d1d1
mov eax, dword [0x447cf8]
mov cx, word [0x49dd36]
imul eax, eax, 0x311fdcc7
movsx edx, cx
xor edx, eax
cmp edx, 0x8f569a61
jge 0x40d1d1
dec dword [0x44898c]
mov eax, dword [0x44898c]
movzx ecx, word [0x4a3ce0]
and eax, 0x2eb6468f
xor eax, 0x9c7fd153
and ecx, eax
mov word [0x4a3ce0], cx
mov edi, dword [ebp + 8]
fld1
mov dx, word [0x4990a0]
mov ecx, dword [0x444ce8]
movsx eax, dx
movzx edx, byte [edi + 0x437250]
add eax, 0xa04b5312
add ecx, eax
mov word [0x4990a0], cx
mov byte [esi], dl
fld dword [0x4a9dfc]
fld dword [0x4aa19c]
fadd qword [0x477080]
fsubp st(1)
fstp dword [0x4a9dfc]
fld qword [0x477080]
fsub st(1)
fstp qword [0x477080]
fld dword [0x4aa19c]
mov eax, dword [0x4c5eac]
fsub st(1)
fstp dword [0x4aa19c]
movzx ecx, byte [eax + edi]
xor byte [esi], cl
mov edx, dword [0x4554c0]
sub edx, 0x19449b24
mov dword [0x43e8d4], edx
dec dword [0x4554c0]
movzx eax, word [0x4a173a]
imul eax, eax, 0xac1e9200
mov word [0x4a173a], ax
mov ecx, dword [0x43dbe8]
movzx edx, byte [edi + ebx + 0x437250]
imul ecx, ecx, 0xb5ff0ffc
add edi, ebx
mov dword [0x43dbe8], ecx
mov byte [esi + ebx], dl
mov eax, dword [0x4c5eac]
add esi, ebx
mov dword [0x453444], 0x4a692f11
movzx ecx, byte [eax + edi]
xor byte [esi], cl
mov edx, dword [0x446098]
mov ecx, dword [0x454e64]
add dword [0x446098], ebx
mov eax, 0x96f4c41c
sub eax, edx
and ecx, 0x7a7b7d71
cmp ecx, eax
jle 0x40d2e8
fld dword [0x4bbd2c]
fadd dword [0x4a9da0]
fadd dword [0x4b84bc]
fstp dword [0x4b84bc]
fld dword [0x4a9da0]
fadd st(1)
fstp dword [0x4a9da0]
fld dword [0x4ba614]
sub esi, ebx
fmul dword [0x4ad4e0]
add edi, ebx
fstp dword [0x4ba614]
fld qword [0x4908b8]
fmul qword [0x45d790]
fsub dword [0x4abb54]
fld dword [0x4c4720]
fadd qword [0x484728]
fxch st(1)
fucompi st(1)
fstp st(0)
lahf
test ah, 0x44
jnp 0x40d346
mov eax, dword [0x450528]
mov edx, dword [0x442d58]
sar eax, 3
and edx, eax
and edx, 0xb909376b
mov dword [0x442d58], edx
jmp 0x40d358
movzx eax, word [0x4a649e]
or eax, 0x98f09c7d
mov word [0x4a649e], ax
movzx eax, word [esi]
add word [0x49cbd6], bx
mov cx, word [0x49cbd6]
movsx edx, cx
sub edx, 0x5e86002f
cmp edx, 0xcbd912d9
jl 0x40d392
mov ecx, dword [0x447b14]
add ecx, 0x365bd969
and dword [0x454bdc], ecx
add dword [0x447b14], ebx
movzx ebx, ax
lea eax, [ebx + 3]
push eax
lea ecx, [edi + 0x437250]
push ecx
push esi
mov dword [ebp + 8], ebx
call fcn.00408c70
dec dword [0x44615c]
mov eax, dword [0x44615c]
mov edx, dword [0x44e790]
add eax, 0x76f144c3
xor edx, eax
add esp, 0xc
cmp edx, 0x63d9c2e7
jl 0x40d3d6
add dword [0x4429b8], 0xcae8e00b
mov ecx, dword [0x458bb4]
mov eax, 0xe142d0ed
sub eax, ecx
and eax, 0xb975d8b5
sub dword [0x44fa74], eax
lea ecx, [ebx + esi + 3]
mov ebx, dword [0x443084]
mov eax, 0x9c7ecca4
sub eax, ebx
movzx ebx, word [0x4a40c8]
imul ebx, eax
mov eax, dword [0x4c5eac]
mov word [0x4a40c8], bx
add edi, eax
fld dword [0x4afba4]
mov edx, esi
fmul dword [0x4c053c]
fadd dword [0x4c0450]
fld dword [0x4b5bf8]
fcompi st(1)
fstp st(0)
jb 0x40d44a
movzx eax, word [0x4997bc]
imul eax, eax, 0xdb803f02
mov word [0x4997bc], ax
mov ebx, 1
cmp esi, ecx
je 0x40d49f
fld dword [0x4c5474]
fmul qword [0x486990]
fstp qword [0x486990]
fld dword [0x4c5474]
fadd st(1)
fstp dword [0x4c5474]
mov al, byte [edi]
xor byte [edx], al
fld dword [0x4b43c4]
fld dword [0x4bae48]
add edx, ebx
fsub qword [0x478408]
add edi, ebx
fadd dword [0x4be168]
fsubp st(1)
fstp dword [0x4b43c4]
cmp edx, ecx
jne 0x40d453
fld qword [0x46d5d0]
mov edx, dword [ebp + 8]
fsub dword [0x4ab31c]
fstp qword [0x46d5d0]
cmp dword [ebp + 0xc], edx
je 0x40d55a
fld dword [0x4c2ddc]
or esi, 0xffffffff
fmul dword [0x4b10bc]
sub dword [ebp + 0xc], edx
sub ecx, 3
fstp dword [0x4c2ddc]
fld dword [0x4b10bc]
fadd st(1)
fstp dword [0x4b10bc]
mov byte [ecx + 3], 0
add dword [0x44ba34], esi
mov ax, word [0x4a16ac]
mov edi, dword [0x44ba34]
cwde
sub eax, edi
xor eax, 0xc6d0668b
add dword [0x451b5c], eax
add word [0x4a16ac], si
mov esi, ecx
fld dword [0x4aafd8]
fsub dword [0x4c48f4]
fstp dword [0x4aafd8]
mov eax, dword [0x43d564]
mov edi, dword [ecx]
and eax, 0xb149cb16
add dword [0x451bc8], eax
movzx ecx, word [0x4a1bca]
add ecx, 0x2fa43f4c
mov word [0x4a1bca], cx
add dword [0x454910], 0x319c0a94
jmp 0x40d1d6
add word [0x49f550], bx
fstp st(0)
mov dx, word [0x498ac2]
movzx ecx, word [0x49f550]
movsx eax, dx
sub eax, ecx
pop edi
sub eax, 0xaa83cc3
pop esi
mov word [0x498ac2], ax
mov eax, dword [ebp - 4]
pop ebx
mov esp, ebp
pop ebp
ret