Function at 0x41add0
Capabilities:
Encode data using xor
Get disk information

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x44
push eax
push eax
mov dword [ebp - 0x50], esp
sub esp, 0x50
mov edi, esp
sub esp, 0x50
mov ebx, esp
push eax
mov dword [ebp - 0x18], esp
sub esp, 0x10
mov dword [ebp - 0x4c], esp
sub esp, 0x44
mov dword [ebp - 0x48], esp
mov eax, dword [0x443f54]
mov dword [ebp - 0x44], 0x17621945
mov dword [ebp - 0x40], 0x138d1587
mov dword [ebp - 0x3c], 0xf9a1171
mov dword [ebp - 0x38], 0xb9a0d4d
mov dword [ebp - 0x34], 0x77a0998
mov dword [ebp - 0x30], 0x38e0565
mov dword [ebp - 0x2c], 0x3f630161
mov word [ebp - 0x28], 0x3d3c
mov dword [ebp - 0x26], 0
mov dword [ebp - 0x14], 0
mov ecx, dword [ebp - 0x14]
cmp ecx, 0x21
ja 0x41ae7e
nop
nop
nop
nop
nop
nop
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x14]
movzx edx, byte [ebp + edx - 0x44]
add ecx, 0xcc7cd506
xor ecx, edx
mov dword [ebp - 0x10], ecx
mov ecx, dword [ebp - 0x10]
add cl, 0xe2
mov edx, dword [ebp - 0x14]
mov byte [ebp + edx - 0x44], cl
inc dword [ebp - 0x14]
mov ecx, dword [ebp - 0x14]
cmp ecx, 0x22
jb 0x41ae50
lea edx, [ebp - 0x20]
lea ecx, [ebp - 0x44]
push edx
push 0
push 0
push 0xe
push ecx
push 0
call eax
mov esi, dword [ebp - 0x20]
test esi, esi
jns 0x41ae9e
mov eax, 0xffffffff
jmp 0x41aea1
lea eax, [esi + esi]
push eax
call fcn.004097d0
add esp, 4
mov ecx, dword [0x443f54]
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x44], 0x194e1b77
mov dword [ebp - 0x40], 0x65cb67a9
mov dword [ebp - 0x3c], 0x61d663cb
mov dword [ebp - 0x38], 0x6dde6f2f
mov dword [ebp - 0x34], 0x69266bdc
mov dword [ebp - 0x30], 0x75ca77c7
mov dword [ebp - 0x2c], 0x711973db
mov word [ebp - 0x28], 0x7f70
mov dword [ebp - 0x26], 0
mov word [ebp - 0x22], 0
mov dword [ebp - 0x14], 0
mov ecx, dword [ebp - 0x14]
cmp ecx, 0x23
ja 0x41af3e
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x14]
movzx edx, byte [ebp + edx - 0x44]
add ecx, 0x8ce95f3b
xor ecx, edx
mov dword [ebp - 0x10], ecx
mov ecx, dword [ebp - 0x10]
add cl, 0xd9
mov edx, dword [ebp - 0x14]
mov byte [ebp + edx - 0x44], cl
inc dword [ebp - 0x14]
mov ecx, dword [ebp - 0x14]
cmp ecx, 0x24
jb 0x41af10
lea ecx, [ebp - 0x20]
push ecx
push esi
mov esi, eax
push eax
push 0xe
lea eax, [ebp - 0x44]
push eax
push 0
call dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
mov ecx, eax
and ecx, 9
xor eax, 9
lea eax, [eax + ecx*2]
test eax, eax
jns 0x41af6a
mov eax, 0xffffffff
jmp 0x41af6c
add eax, eax
push eax
call fcn.004097d0
add esp, 4
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x44], 0x9f4e9944
mov dword [ebp - 0x40], 0xa3459d7d
mov dword [ebp - 0x3c], 0xa747a14f
mov dword [ebp - 0x38], 0xab4fa54f
mov dword [ebp - 0x34], 0xafaea95f
mov word [ebp - 0x30], 0
mov dword [ebp - 0x14], 0
mov eax, dword [ebp - 0x14]
cmp eax, 0x15
ja 0x41afdc
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x14]
movzx ecx, byte [ebp + ecx - 0x44]
add eax, 0x7e14395a
xor eax, ecx
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
add al, 0x3e
mov ecx, dword [ebp - 0x14]
mov byte [ebp + ecx - 0x44], al
inc dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
cmp eax, 0x16
jb 0x41afb0
movzx ecx, word [esi]
mov eax, dword [ebp - 0x1c]
test cx, cx
je 0x41b001
lea edx, [esi + 2]
mov eax, dword [ebp - 0x1c]
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x41aff0
mov word [eax], 0
movzx ecx, word [ebp - 0x44]
test cx, cx
je 0x41b031
lea edx, [ebp - 0x42]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x41b020
mov word [eax], 0
lea eax, [ebp - 0x14]
push eax
push dword [ebp - 0x1c]
call fcn.00438830
add esp, 8
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x43f350]