Function at 0x4271d0
Capabilities:
Encode data using xor
Get disk information
Resolve function by parsing pe exports

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x9c
mov dword [esp + 8], 0xf1c20feb
mov dword [esp + 0xc], 0xf557f361
mov dword [esp + 0x10], 0xf95af757
mov dword [esp + 0x14], 0xfd6afb3b
mov dword [esp + 0x18], 0xe13aff6c
mov dword [esp + 0x1c], 0xe576e343
mov dword [esp + 0x20], 0xe901e747
lea eax, [esp + 0x24]
mov dword [esp + 0x6c], eax
mov word [esp + 0x24], 0xebe8
mov dword [esp + 0x26], 0
mov word [esp + 0x2a], 0
mov edi, 0x586281fd
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + edi - 0x586281f5]
mov ecx, edi
and ecx, esi
mov dword [esp], ecx
mov eax, ecx
and eax, 0xfffffffd
mov ebx, eax
mov dword [esp + 0x70], eax
mov eax, ecx
and eax, 2
mov ebp, ecx
or ebp, 0xfffffffd
mov edx, ecx
or edx, 2
mov dword [esp + 4], edx
imul eax, edx
lea edx, [ebp + 1]
imul edx, ebx
add edx, esi
mov ecx, edx
sub ecx, eax
add edx, edi
sub edx, eax
add ecx, edi
mov bh, dl
and bh, 0xc
not cl
and cl, 2
mov al, bh
mul cl
mov ch, al
mov eax, esi
add ch, al
or bh, 2
shr edx, 1
mov cl, dl
and cl, 1
mov al, bh
mul cl
mov ebx, eax
mov eax, ebp
inc al
mul byte [esp + 0x70]
mov cl, al
mov eax, dword [esp]
shr al, 1
and al, 1
mul byte [esp + 4]
add bl, bl
add bl, ch
add cl, bl
add al, al
sub cl, al
and dl, 7
shl dl, 2
sub cl, dl
movzx eax, cl
add eax, edi
add al, 0xf
mov byte [esp + edi - 0x586281f5], al
inc edi
cmp edi, 0x58628221
jne 0x427240
lea edx, [esp + 0x7e]
lea ebp, [esp + 8]
mov eax, ebp
mov ecx, 7
mov edi, edx
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea edi, [esp + 0x9a]
mov ecx, 1
mov eax, dword [esp + 0x6c]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
lea esi, [esp + 0x58]
push esi
push 0
push 0
push 0xe
push edx
push 0
call dword [0x452160]
mov ebx, dword [esp + 0x58]
mov edi, 0xffffffff
test ebx, ebx
jns 0x42733a
mov eax, 0xffffffff
jmp 0x42733d
lea eax, [ebx + ebx]
push eax
call fcn.0040cb10
add esp, 4
push esi
push ebx
mov dword [esp + 0xc], eax
push eax
push 0xe
lea eax, [esp + 0x8e]
push eax
push 0
call dword [0x452160]
mov eax, dword [esp + 0x58]
mov ecx, eax
and ecx, 9
xor eax, 9
lea eax, [eax + ecx*2]
test eax, eax
js 0x427376
add eax, eax
mov edi, eax
push edi
call fcn.0040cb10
add esp, 4
mov edi, eax
mov dword [esp + 8], 0x3f8e3984
mov dword [esp + 0xc], 0x23853d9d
mov dword [esp + 0x10], 0x2787218f
mov dword [esp + 0x14], 0x2b8f258f
mov dword [esp + 0x18], 0x2f2e29bf
mov word [esp + 0x1c], 0
mov eax, 0x77bf97f5
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [ebp]
lea ecx, [edx + edx]
not ecx
add ecx, edx
lea esi, [eax - 0x77bf9700]
and esi, edx
not edx
or edx, ecx
lea ecx, [edx + edx]
not ecx
add ecx, edx
or ecx, eax
not ecx
or ecx, esi
mov edx, ecx
and edx, 0x4d
xor ecx, 0xcd
lea ecx, [ecx + edx*2]
inc cl
mov byte [ebp], cl
inc ebp
dec eax
cmp eax, 0x77bf97df
jne 0x4273c0
mov esi, dword [esp + 4]
movzx ecx, word [esi]
mov eax, edi
test cx, cx
je 0x427431
lea edx, [esi + 2]
mov eax, edi
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 0x427420
mov word [eax], 0
movzx ecx, word [esp + 8]
test cx, cx
je 0x427461
lea edx, [esp + 0xa]
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 0x427450
mov word [eax], 0
lea eax, [esp + 0x78]
push eax
push edi
call fcn.00445210
add esp, 8
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x44d504]