Function at 0x40d6f0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ecx
fld dword [0x46f124]
fstp dword [0x469dc4]
fld dword [0x46f124]
fsub qword [0x43b230]
fstp dword [0x46f124]
mov eax, dword [0x43f040]
imul eax, eax, 0x37648009
mov dword [0x43f040], eax
inc dword [0x43c930]
mov cx, word [0x464ffc]
mov edx, dword [0x43c930]
movsx eax, cx
xor eax, 0x1800110
or eax, 0xf657de6e
and edx, 0xc8000423
cmp edx, eax
jg 0x40d767
mov ax, word [0x464b36]
mov ecx, dword [0x447400]
cwde
or ecx, eax
or ecx, 0x14774966
mov dword [0x447400], ecx
mov edx, dword [ebp + 0xc]
xor dword [0x445344], 0x909f9d85
push ebx
push esi
add edx, 4
push edi
push edx
call fcn.0042adb0
mov esi, eax
mov eax, dword [0x447f1c]
imul eax, eax, 0xffbfff5f
mov dword [0x447f1c], eax
add esp, 4
fld dword [0x47143c]
mov dword [ebp - 4], esi
fld dword [0x46bb18]
mov ebx, 0xffffffff
fmul dword [0x4671a0]
fsub qword [0x4536f8]
fxch st(1)
fcompi st(1)
fstp st(0)
jb 0x40d7fc
add word [0x461ab6], bx
mov cx, word [0x461ab6]
movsx edx, cx
imul edx, edx, 0xe20ff511
cmp edx, 0xa79a1868
jne 0x40d7fc
fld dword [0x46f40c]
fstp dword [0x46b758]
fld dword [0x46f40c]
fld1
fadd st(1), st(0)
fxch st(1)
fstp dword [0x46f40c]
jmp 0x40d7fe
fld1
mov edi, dword [ebp + 8]
add dword [0x445020], 0x54bd14e4
mov al, byte [edi + 0x437230]
mov byte [esi], al
mov ecx, dword [0x447c28]
or ecx, 0x2062d9
cmp ecx, 0xa3ffbc7f
jle 0x40d851
mov edx, dword [0x43e0dc]
or edx, 0x49288fa6
cmp edx, 0x30208d0c
jne 0x40d847
or dword [0x446d18], 0x940008
jmp 0x40d851
add dword [0x447654], 0x40f0f
mov eax, dword [0x472fa8]
mov cl, byte [eax + edi]
xor byte [esi], cl
add dword [0x441470], ebx
mov eax, dword [0x441470]
mov edx, dword [0x4466d8]
add eax, 0xfc6c94a
or edx, eax
cmp edx, 0xe30e5186
jg 0x40d8a7
fld dword [0x470700]
fadd dword [0x470450]
fsub dword [0x467bdc]
fmul qword [0x45e470]
fstp qword [0x45e470]
fld dword [0x467bdc]
fadd st(1)
fstp dword [0x467bdc]
or dword [0x446700], 0xdabbd273
mov eax, dword [0x4471d0]
movzx ecx, byte [edi + 0x437231]
imul eax, eax, 0x8180861e
inc edi
mov dword [0x4471d0], eax
inc esi
mov byte [esi], cl
mov eax, dword [0x472fa8]
mov edx, 0x3483
mov word [0x4639d6], dx
movzx ecx, byte [eax + edi]
xor byte [esi], cl
mov edx, dword [0x443770]
cmp edx, 0xf101708d
jl 0x40d939
mov eax, dword [0x443714]
not eax
cmp eax, 0xfe7ffce7
jle 0x40d92f
fld dword [0x471684]
fmul dword [0x46a2fc]
fld qword [0x44eca0]
fld qword [0x448698]
faddp st(2)
fsubrp st(1)
fstp qword [0x44eca0]
fsubr dword [0x46a2fc]
fstp dword [0x46a2fc]
jmp 0x40d93b
mov dword [0x440e7c], 0x200c0404
fstp st(0)
add dword [0x43cbc8], 0x6f321016
movzx ecx, word [0x464170]
add ecx, 0x2d91f21a
mov word [0x464170], cx
movzx eax, word [esi - 1]
mov ecx, dword [0x43d414]
movzx edx, word [0x466052]
dec esi
movzx ebx, ax
add ecx, 0x940e0c9b
and edx, ecx
lea eax, [ebx + 3]
inc edi
push eax
lea ecx, [edi + 0x437230]
push ecx
mov word [0x466052], dx
push esi
mov dword [ebp + 8], ebx
call fcn.00414ba0
mov dword [0x43df34], 0x66df8cd8
mov edx, dword [0x43f90c]
mov ecx, dword [0x4455b4]
xor edx, ecx
xor edx, 0x4e386a50
mov dword [0x43f90c], edx
movzx edx, word [0x462aa0]
lea ecx, [ebx + esi + 3]
mov ebx, dword [0x444f7c]
movsx edx, dx
add ebx, 0xacd86e3
or edx, 0x7aa59ad4
or ebx, 0x7143ca9a
add esp, 0xc
cmp edx, ebx
mov eax, esi
jle 0x40da13
inc dword [0x442664]
mov edx, dword [0x442664]
lea ebx, [edx + 0xa5eace4]
mov dx, word [0x460a78]
movsx edx, dx
xor edx, ebx
movzx ebx, word [0x46114a]
add ebx, edx
mov word [0x46114a], bx
mov edx, dword [0x472fa8]
xor dword [0x4423bc], 0x44cf3897
add edi, edx
cmp esi, ecx
je 0x40da49
mov edx, 0x3e2f07f5
mov esi, 0x63abae58
add dword [0x4473f4], esi
mov bl, byte [edi]
xor byte [eax], bl
and dword [0x43e7a4], edx
inc eax
inc edi
cmp eax, ecx
jne 0x40da33
mov eax, dword [0x43c6f4]
imul eax, eax, 0x77671e2b
mov edx, 0xc60bb2ce
or ebx, 0xffffffff
add dword [0x43c6f4], ebx
sub edx, eax
cmp edx, 0xca95a51d
jle 0x40da76
and dword [0x4436f4], 0x472c89cf
mov edx, dword [ebp + 8]
cmp dword [ebp + 0xc], edx
je 0x40db63
fld dword [0x46f370]
fmul dword [0x469154]
fsub dword [0x46b4d0]
fld dword [0x46bd1c]
fsub qword [0x4573e0]
fld dword [0x46b4d0]
fld1
fadd st(1), st(0)
fxch st(1)
fstp dword [0x46b4d0]
fxch st(1)
fcompi st(2)
fstp st(1)
jbe 0x40dac4
xor dword [0x43d198], 0x100a0720
mov byte [ecx], 0
add dword [0x446a4c], 0xa00212c0
fld dword [0x470664]
fsub dword [0x4680fc]
sub ecx, 3
fsub dword [0x470070]
fld dword [0x47250c]
fxch st(1)
fucompi st(1)
fstp st(0)
lahf
test ah, 0x44
jnp 0x40db02
add dword [0x4438dc], 0x7ac33335
fld dword [0x46c430]
mov edi, dword [ecx]
fmul qword [0x45cbb0]
sub dword [ebp + 0xc], edx
mov esi, ecx
fadd dword [0x468720]
fstp dword [0x46aa4c]
fld dword [0x468720]
fadd st(1)
fstp dword [0x468720]
mov eax, dword [0x4444ac]
not eax
add eax, 0xfbafd919
add dword [0x440d9c], eax
mov eax, dword [0x447918]
movzx ecx, word [0x46345a]
sar eax, 4
add eax, 0x1826330a
xor ecx, eax
mov word [0x46345a], cx
jmp 0x40d801
movzx edx, word [0x462936]
mov eax, dword [ebp - 4]
imul edx, edx, 0xbee9b8ed
pop edi
pop esi
mov word [0x462936], dx
pop ebx
mov esp, ebp
pop ebp
ret