Function at 0x47b02a
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0xcf256c
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x118
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x14], ebx
mov eax, dword [ecx + 8]
mov dword [ebp - 0x20], ecx
cmp eax, 0x3ffffffe
jb 0x47b168
mov dword [ebp - 0x48], 0xf
lea edx, [ebp - 0x60]
xor eax, eax
mov ecx, 0x13
mov dword [ebp - 0x4c], eax
mov byte [ebp - 0x5c], al
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x2c], 0xd27f1c
mov dword [ebp - 0x30], edx
cmp eax, 0x10
mov dword [ebp - 0x28], 0x13
jb 0x47b09a
mov ebx, dword [ebp - 0x5c]
jmp 0x47b09d
lea ebx, [ebp - 0x5c]
mov edx, 0xd27f1c
cmp edx, ebx
jae 0x47b8e0
xor edx, edx
test edx, edx
je 0x47b101
cmp eax, 0x10
jb 0x47b0ba
mov edx, dword [ebp - 0x5c]
jmp 0x47b0bd
lea edx, [ebp - 0x5c]
lea eax, [ebp - 0x60]
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], eax
mov ebx, 0xd27f1c
sub ebx, edx
mov edx, dword [ebp - 0x4c]
mov dword [ebp - 0x38], ebx
cmp edx, ebx
jae 0x47b0e5
call 0xd60157
mov edx, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x28]
mov ebx, dword [ebp - 0x38]
mov eax, edx
sub eax, ebx
cmp ecx, eax
jb 0x47b0ef
mov ecx, eax
mov dword [ebp - 0x44], ecx
jmp 0x47b6bb
mov dword [ebp - 0x34], 0x13
cmp eax, 0x13
jb 0x47b7ff
mov eax, dword [ebp - 0x34]
test eax, eax
ja 0x47b7ad
mov dword [ebp - 4], 8
lea eax, [ebp - 0x60]
push eax
lea ecx, [ebp - 0x90]
call fcn.0047dd4e
push 0xe4a7c0
lea eax, [ebp - 0x90]
push eax
call 0xd2d830
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x48]
cmp eax, 0x10
jae 0x47b79f
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x48], 0xf
xor eax, eax
mov dword [ebp - 0x4c], eax
mov byte [ebp - 0x5c], al
mov ebx, dword [ebp + 0x10]
push 0x14
mov esi, dword [ecx + 4]
call 0xd2bdc1
pop ecx
test eax, eax
je 0x47b192
mov dword [eax], esi
mov dword [eax + 4], ebx
mov dword [eax + 8], esi
mov esi, dword [ebp + 0x14]
mov edi, dword [esi]
mov dword [eax + 0xc], edi
xor edx, edx
mov byte [eax + 0x10], dl
mov byte [eax + 0x11], dl
mov esi, dword [ebp - 0x20]
mov edx, dword [ebp + 0x10]
mov ecx, dword [esi + 4]
add dword [esi + 8], 1
cmp edx, ecx
je 0x47ba61
movzx ecx, byte [ebp + 0xc]
test ecx, ecx
je 0x47b1be
mov dword [edx], eax
mov ecx, dword [esi + 4]
cmp edx, dword [ecx]
je 0x47b907
jmp 0x47b1cd
mov dword [edx + 8], eax
mov ecx, dword [esi + 4]
cmp edx, dword [ecx + 8]
je 0x47ba59
mov edx, dword [eax + 4]
movsx ebx, byte [edx + 0x10]
mov ecx, eax
test ebx, ebx
jne 0x47b281
mov ebx, dword [ecx + 4]
mov edx, dword [ebx + 4]
mov edi, dword [edx]
cmp ebx, edi
je 0x47b96d
movsx edx, byte [edi + 0x10]
mov dword [ebp + 0x10], edi
test edx, edx
jne 0x47b216
mov edx, 1
mov byte [ebx + 0x10], dl
mov byte [edi + 0x10], dl
mov ebx, dword [ecx + 4]
mov edi, dword [ebx + 4]
mov byte [edi + 0x10], 0
mov ecx, dword [ecx + 4]
mov ecx, dword [ecx + 4]
jmp 0x47b272
mov edx, dword [ebx]
cmp ecx, edx
je 0x47b921
mov byte [ebx + 0x10], 1
mov edx, dword [ecx + 4]
mov ebx, dword [edx + 4]
mov byte [ebx + 0x10], 0
mov edi, dword [ecx + 4]
mov ebx, dword [edi + 4]
mov edx, dword [ebx + 8]
mov edi, dword [edx]
mov dword [ebx + 8], edi
mov edi, dword [edx]
mov dword [ebp - 0x24], edi
movsx edi, byte [edi + 0x11]
test edi, edi
je 0x47b916
mov edi, dword [ebx + 4]
mov dword [edx + 4], edi
mov edi, dword [esi + 4]
cmp ebx, dword [edi + 4]
je 0x47b90e
mov edi, dword [ebx + 4]
cmp ebx, dword [edi]
je 0x47b26b
mov dword [edi + 8], edx
jmp 0x47b26d
mov dword [edi], edx
mov dword [edx], ebx
mov dword [ebx + 4], edx
mov edx, dword [ecx + 4]
movsx ebx, byte [edx + 0x10]
test ebx, ebx
je 0x47b1de
mov edx, dword [esi + 4]
mov ecx, dword [edx + 4]
mov edx, dword [ebp + 8]
test esi, esi
mov byte [ecx + 0x10], 1
mov dword [edx + 4], eax
mov dword [edx], 0
je 0x47ba49
mov edi, dword [ebp - 0x1c]
mov ebx, dword [ebp - 0x14]
mov dword [edx], esi
mov esi, dword [ebp - 0x18]
mov eax, edx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 0x10
add ebx, ecx
cmp edx, ebx
jae 0x47b6c9
call 0xd60157
mov edx, dword [ebp - 0x4c]
mov eax, edx
sub eax, ebx
cmp eax, 0xffffffff
mov esi, eax
jb 0x47b6d9
mov esi, 0xffffffff
test esi, esi
ja 0x47b748
mov ebx, dword [ebp - 0x38]
test edx, edx
jae 0x47b6ec
call 0xd60157
mov edx, dword [ebp - 0x4c]
cmp edx, ebx
jae 0x47b6f2
mov ebx, edx
test ebx, ebx
jbe 0x47b11c
mov ecx, dword [ebp - 0x48]
cmp ecx, 0x10
jb 0x47b70a
mov esi, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x5c]
jmp 0x47b710
lea esi, [ebp - 0x5c]
lea eax, [ebp - 0x5c]
mov byte [ebp - 0xcc], 0
add eax, ebx
sub edx, ebx
push edx
push eax
push ecx
push esi
call 0xd2d8f5
add esp, 0x10
mov edx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x48]
sub edx, ebx
mov dword [ebp - 0x4c], edx
cmp eax, 0x10
jb 0x47b73c
mov eax, dword [ebp - 0x5c]
jmp 0x47b73f
lea eax, [ebp - 0x5c]
mov byte [eax + edx], 0
jmp 0x47b11c
mov ecx, dword [ebp - 0x48]
cmp ecx, 0x10
jb 0x47b758
mov edi, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x5c]
jmp 0x47b75e
lea edi, [ebp - 0x5c]
lea edx, [ebp - 0x5c]
mov byte [ebp - 0xc8], 0
add edi, ebx
sub ecx, ebx
add ebx, esi
add ebx, edx
sub eax, esi
push eax
push ebx
push ecx
push edi
call 0xd2d8f5
add esp, 0x10
mov edx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x48]
sub edx, esi
mov dword [ebp - 0x4c], edx
cmp eax, 0x10
jb 0x47b790
mov eax, dword [ebp - 0x5c]
jmp 0x47b793
lea eax, [ebp - 0x5c]
mov byte [eax + edx], 0
mov edx, dword [ebp - 0x4c]
jmp 0x47b6dd
push dword [ebp - 0x5c]
call 0xd2be2b
pop ecx
jmp 0x47b156
mov ecx, dword [ebp - 0x30]
mov edx, dword [ecx + 0x18]
cmp edx, 0x10
jb 0x47b7bd
mov ecx, dword [ecx + 4]
jmp 0x47b7c0
add ecx, 4
push dword [ebp - 0x28]
push dword [ebp - 0x2c]
movzx eax, byte [ebp - 0x64]
mov byte [ebp - 0x68], al
push edx
push ecx
call 0x407ac7f7
mov ecx, 0xd527a88
and dh, byte [edi]
and eax, 0xe0533046
mov dword [0x9f025e60], eax
mov al, 0xdc
test edx, 0xedb484d0
adc byte [ebx], 0x56
fucom st(2)
xor dh, al
or al, 0x58
sbb esi, dword [edx + 0xb45027]
add esi, dword [eax]
push es
and eax, 0x72b39428
aaa
cbw
inc esp
rcl byte [edi + 0x531bce73], 0xd0
cmp ecx, eax
wait
adc esi, dword [eax]
ret
push ds
xchg esi, eax
add ebx, dword [eax]
std
fnstcw word [ecx - 0x16]
jl 0x47b916
adc dword [ebx + edx], ebp
xor dword [eax], esi
inc ebp
push ds
in al, 0x5c
dec eax
xor esi, dword [ebx + 0x33]
or edx, dword [ebp - 0x7e]
add eax, 0xec405350
xchg byte ds:[esi + eax*8 + 0x1e], dh
dec ebp
and esi, dword [ebx]
inc ebx
bound esi, qword [edi]
push edx
pop esi
outsb dx, byte [esi]
popal
jae 0x47b8bd
or esi, eax
adc edx, dword [eax - 0xe]
add dword [ecx - 0x2c7e8eef], 0x7c0eba0
add dword [ecx - 0x2c7e8eef], 0x7c0eba0
pop es
int 0x33
fld xword cs:[eax]
rol byte [eax], 1
xor edx, dword [eax]
sub ecx, edi
mov byte [0x373d6bb3], al
nop
ret
iretd
adc dh, ah
pop ecx
jp 0x47b8ac
xchg ebp, eax
inc dl
add eax, 0xa521d273
out dx, eax
push eax
ret 0x7305
push esi
and eax, esp
aam 0xb3
inc edi
mov esp, 0x4606622
jae 0x47b8ea
aas
or byte [ebx - 0x5b0c593c], 0x66
xchg ebx, ebx
invalid
jae 0x47b8f5
add byte [ebx - 0x25], 0x11
sal bl, 1
cmp dword [ebx], esi
div dword [edx + 0x7c]
mov eax, dword [eax + 0x16]
dec ebx
inc ecx
jmp 0x47b9c9
cld
xor edi, esi
dec ebp
mov dl, 0xc2
mov al, byte [0xf7940389]
add al, 0xb3
adc bl, al
mov bl, dl
adc al, 0xac
add al, 0x66
js 0x47b9fb
mov al, byte [0x37a36897]
rol esp, cl
xchg ebx, eax
invalid
sahf
cmc
dec eax
movsd dword es:[edi], dword [esi]
cwde
and dword [eax + 0x453729d2], 0xffffffbd
push eax
adc dh, byte [ecx]
jge 0x47b993
fisttp qword [edx - 0x42]
les edx, [ebx - 0x2f]
mov ah, pe_nt_image_headers32
jp 0x47b988
cmp ah, byte [esi]
ret 0x65a0
inc ebx
imul esi, ebp, 0x53
push ebp
mov dword [0x6b075d3], eax
mov al, 0x1c
mov ebx, ecx
mov dh, 0x4e
inc ebp
mov edi, 0x2d19d396
adc byte [ebx], ch
invalid
in eax, 0xe0
std
loopne 0x47ba48
cmp byte [ebx + 0x75], 0x46
hlt
mov ah, 0x75
inc ecx
mov ebp, 0xe3cc7679
dec ebx
or edx, dword [eax]
mov ch, 0xc4
fstp st(1)
ret 0xc510