Function at 0x47a50c
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 0x47a64a
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 0x47a57c
mov ebx, dword [ebp - 0x5c]
jmp 0x47a57f
lea ebx, [ebp - 0x5c]
mov edx, 0xd27f1c
cmp edx, ebx
jae 0x47adc2
xor edx, edx
test edx, edx
je 0x47a5e3
cmp eax, 0x10
jb 0x47a59c
mov edx, dword [ebp - 0x5c]
jmp 0x47a59f
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 0x47a5c7
call 0xd5f639
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 0x47a5d1
mov ecx, eax
mov dword [ebp - 0x44], ecx
jmp 0x47ab9d
mov dword [ebp - 0x34], 0x13
cmp eax, 0x13
jb 0x47ace1
mov eax, dword [ebp - 0x34]
test eax, eax
ja 0x47ac8f
mov dword [ebp - 4], 8
lea eax, [ebp - 0x60]
push eax
lea ecx, [ebp - 0x90]
call fcn.0047d230
push 0xe4a7c0
lea eax, [ebp - 0x90]
push eax
call 0xd2cd12
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x48]
cmp eax, 0x10
jae 0x47ac81
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 0xd2b2a3
pop ecx
test eax, eax
je 0x47a674
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 0x47af43
movzx ecx, byte [ebp + 0xc]
test ecx, ecx
je 0x47a6a0
mov dword [edx], eax
mov ecx, dword [esi + 4]
cmp edx, dword [ecx]
je 0x47ade9
jmp 0x47a6af
mov dword [edx + 8], eax
mov ecx, dword [esi + 4]
cmp edx, dword [ecx + 8]
je 0x47af3b
mov edx, dword [eax + 4]
movsx ebx, byte [edx + 0x10]
mov ecx, eax
test ebx, ebx
jne 0x47a763
mov ebx, dword [ecx + 4]
mov edx, dword [ebx + 4]
mov edi, dword [edx]
cmp ebx, edi
je 0x47ae4f
movsx edx, byte [edi + 0x10]
mov dword [ebp + 0x10], edi
test edx, edx
jne 0x47a6f8
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 0x47a754
mov edx, dword [ebx]
cmp ecx, edx
je 0x47ae03
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 0x47adf8
mov edi, dword [ebx + 4]
mov dword [edx + 4], edi
mov edi, dword [esi + 4]
cmp ebx, dword [edi + 4]
je 0x47adf0
mov edi, dword [ebx + 4]
cmp ebx, dword [edi]
je 0x47a74d
mov dword [edi + 8], edx
jmp 0x47a74f
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 0x47a6c0
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 0x47af2b
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
mov edx, dword [ebp - 0xa4]
test edx, edx
ja 0x47a88d
mov edx, dword [ebp - 0xa8]
mov eax, dword [edx + 0x18]
cmp eax, 0x10
jae 0x47a879
mov dword [edx + 0x18], 0xf
mov eax, dword [ebp - 0xa8]
mov dword [eax + 0x14], 0
mov eax, dword [ebp - 0xa8]
mov edx, dword [eax + 0x18]
cmp edx, 0x10
jb 0x47a821
mov eax, dword [eax + 4]
jmp 0x47a824
add eax, 4
mov ecx, dword [ebp - 0xb0]
mov byte [eax], 0
mov edx, dword [ebp - 0xa8]
mov eax, dword [ebp - 0xac]
mov dword [edx + 4], eax
mov ebx, dword [ebp - 0xa8]
mov dword [ebx + 0x18], ecx
mov edi, dword [ebp - 0xa8]
mov esi, dword [ebp - 0xa4]
mov dword [edi + 0x14], esi
mov edx, dword [ebp - 0xa8]
mov eax, dword [edx + 0x18]
cmp eax, 0x10
jb 0x47a867
mov edx, dword [edx + 4]
jmp 0x47a86a
add edx, 4
mov eax, dword [ebp - 0xa4]
mov byte [edx + eax], 0
jmp 0x47a5f3
push dword [edx + 4]
call 0xd2b30d
pop ecx
mov edx, dword [ebp - 0xa8]
jmp 0x47a7fa
mov ecx, dword [ebp - 0xa8]
mov eax, dword [ecx + 0x18]
cmp eax, 0x10
jb 0x47a8a0
mov ecx, dword [ecx + 4]
jmp 0x47a8a3
add ecx, 4
mov ebx, dword [ebp - 0xb0]
movzx eax, byte [ebp - 0xd8]
mov byte [ebp - 0xdc], al
push edx
add ebx, 1
push ecx
push ebx
push dword [ebp - 0xac]
call 0xd2cd5c
add esp, 0x10
jmp 0x47a7e8
add ebx, ecx
cmp edx, ebx
jae 0x47abab
call 0xd5f639
mov edx, dword [ebp - 0x4c]
mov eax, edx
sub eax, ebx
cmp eax, 0xffffffff
mov esi, eax
jb 0x47abbb
mov esi, 0xffffffff
test esi, esi
ja 0x47ac2a
mov ebx, dword [ebp - 0x38]
test edx, edx
jae 0x47abce
call 0xd5f639
mov edx, dword [ebp - 0x4c]
cmp edx, ebx
jae 0x47abd4
mov ebx, edx
test ebx, ebx
jbe 0x47a5fe
mov ecx, dword [ebp - 0x48]
cmp ecx, 0x10
jb 0x47abec
mov esi, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x5c]
jmp 0x47abf2
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 0xd2cdd7
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 0x47ac1e
mov eax, dword [ebp - 0x5c]
jmp 0x47ac21
lea eax, [ebp - 0x5c]
mov byte [eax + edx], 0
jmp 0x47a5fe
mov ecx, dword [ebp - 0x48]
cmp ecx, 0x10
jb 0x47ac3a
mov edi, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x5c]
jmp 0x47ac40
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 0xd2cdd7
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 0x47ac72
mov eax, dword [ebp - 0x5c]
jmp 0x47ac75
lea eax, [ebp - 0x5c]
mov byte [eax + edx], 0
mov edx, dword [ebp - 0x4c]
jmp 0x47abbf
push dword [ebp - 0x5c]
call 0xd2b30d
pop ecx
jmp 0x47a638
mov ecx, dword [ebp - 0x30]
mov edx, dword [ecx + 0x18]
cmp edx, 0x10
jb 0x47ac9f
mov ecx, dword [ecx + 4]
jmp 0x47aca2
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 0xd2cd5c
add esp, 0x10
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x28]
mov dword [edx + 0x14], eax
mov eax, dword [ebp - 0x30]
mov ecx, dword [eax + 0x18]
cmp ecx, 0x10
jb 0x47acd2
mov eax, dword [eax + 4]
jmp 0x47acd5
add eax, 4
mov edx, dword [ebp - 0x28]
mov byte [eax + edx], 0
jmp 0x47a5fe
mov ecx, dword [ebp - 0x4c]
mov dword [ebp - 0xd0], 0x13
mov ebx, 0x1f
lea edx, [ebp - 0x60]
mov dword [ebp - 0xb0], 0x1f
mov dword [ebp - 0xa8], edx
mov dword [ebp - 0xa4], ecx
mov ecx, eax
mov dword [ebp - 0x24], ebx
shr ecx, 1
cmp ecx, 0xa
ja 0x47ada2
mov dword [ebp - 0xac], 0
mov dword [ebp - 4], 4
mov eax, dword [ebp - 0x24]
add eax, 1
mov dword [ebp - 0x24], eax
jne 0x47ad3f
xor eax, eax
mov dword [ebp - 0x24], eax
jmp 0x47ad86
mov ecx, eax
xor edx, edx
mov eax, 0xffffffff
div ecx
cmp eax, 1
jae 0x47ad86
mov dword [ebp - 0xec], 0
lea eax, [ebp - 0xec]
push eax
lea ecx, [ebp - 0x108]
call 0xd2caa6
mov dword [ebp - 0x108], 0xe40cb4
lea eax, [ebp - 0x108]
push 0xe4a720
push eax
call 0xd2cd12
mov eax, dword [ebp - 0x24]
push eax
call 0xd2b2a3
pop ecx
mov dword [ebp - 0xac], eax
mov dword [ebp - 4], 0xffffffff
jmp 0x47a7da
cmp dl, bh
invalid
mov edx, ecx
neg edx
add edx, 0xfffffffe
cmp eax, edx
ja 0x47ad1c
ret 0x3bfe
lea eax, [eax + ecx]
mov dword [ebp - 0x24], eax
mov dword [ebp - 0xb0], eax
jmp 0xed40ad1c
call 0xa1bc1083
scasb al, byte es:[edi]
salc
fsubp st(4)
fstp dword [ebp + 0x781c885c]
pushfd
test esi, edi
inc esp
dec esp
pop es
or ebx, dword [ecx]
sub al, 0x5f
dec eax
jl 0x47ada7
pushfd
cli
jmp [eax - 0x67]
lodsb al, byte [esi]
test al, 0xb8
nop
add byte [ebx], 0x90
dec eax
cmp ebp, dword [eax - 9]
dec esi
lea ebx, [esi - 0x670d6329]
pushfd
cwde
cmp al, 0x9f
xor edx, edi
insb byte es:[edi], dx
not dword [eax + ebp*4 - 0x345d2da1]
insb byte es:[edi], dx
mov bh, 0x5d
pop edi
shl byte [edx + 0x5db76ccb], cl
push esp
jns 0x47ad9e
pop eax
sub byte [eax - 0x390440f], cl
push esi
xchg esp, eax
jne 0x47ae87
cmp dword [0x95c0b5a1], ebp
sbb esp, dword [eax - 0x3042f144]
pop ebp
xor eax, ebp
and al, 0xe0
xor dword [eax], eax
in al, 0x80
scasb al, byte es:[edi]
and byte [eax - 0x3e1fa315], 0x64
dec esi
adc eax, 0xa4b7fcc3
shl dword [esi + ecx*2 + 0x15], 0xc3
cld
mov bh, 0xa4
cmp al, 0x5c
insd dword es:[edi], dx
and al, 0x6c
invalid
fist dword [edx - 0x52fb1c3a]
push edx
movsd dword es:[edi], dword [esi]
dec esi
mov dword [ebx + 0x7650f15d], ecx
lodsb al, byte [esi]
pop ebp
int1
push eax
jbe 0x47ae00
and eax, 0x85c685b
dec esp
cmp dword [0x337be2b], edi
fldcw word [eax - 0x46]
sub al, cl
nop
jns 0x47ae33
pop esp
or byte [ecx + edi + 0x3d], cl
sub edi, dword [esi + 0x68d90337]
mov edx, 0x7990c828
retf
cmp byte [esi - 0x6376d311], bl
dec edi
test cl, bh
stc
insb byte es:[edi], dx
sub byte [ebx - 0x4eaf6298], ah
in eax, 0xf5
insd dword es:[edi], dx
and dl, ah
fcom dword [edx - 0x13872f4a]
loop 0x47ae57
xchg edx, eax
mov dh, 0xd0
js 0x47ae70
invalid
inc ebx
or al, 0xc
js 0x47aee2
adc dword [ebp + 0x70], ecx
cdq
js 0x47ae44
and dword [ebx - 0x74b7aaef], edx
pop eax
cld
mov ch, 0xbc
jle 0x47aefb
push es
pushal
cdq
scasb al, byte es:[edi]
inc esp
cmc
test dword [edi + eax*8 - 0x4e], 0x4badeac5
mov al, 0x27
loope 0x47ae7d
jnp 0x47af2b
pop eax
mov edi, 0x4469ac6a
dec eax
out 6, eax
sub al, 0xb
mov dword [ebp + 0x17], ecx
or byte [ebx + 0x14c97c25], cl
stc
sub al, 0xc8
dec esp
sub ch, byte [0xa0059c10]
enter 0x5d7d, 0xffffffffffffffaf
cmp eax, 0xb11dcd4f
sbb eax, 0x1d773f58
neg byte [eax]
lds ebx, [ecx - 0x18]
lodsb al, byte [esi]
fcom st(3)
cmp cl, byte [edx - 0x53]
call 0x3b1b8793
dec edx
lodsd eax, dword [esi]
pop ebp
movsd dword es:[edi], dword [esi]
out dx, eax
xchg ebx, eax
mov edx, fs
mov edi, 0x2b806460
mov al, 0x3c
pushal
fidiv word [esi]
sub esi, dword [eax + 0x36de603c]
push 0x6e
mov ecx, 0x7e2a0ce7
adc byte [eax - 0x533b01e9], ah
dec esi
and eax, dword [eax + 0x64]
and eax, 0xed8ee7b2
sbb al, 0x37
ficomp word [ecx + 0x4f]
mov al, byte [0x6d54a08b]
sub edi, ebx
arpl word [edx - 0x574fdf65], di
mov dh, 3
int 0xfe
fsub st(4)
jae 0x47af9d
loopne 0x47af31
add eax, 0x9d60a813
and esi, dword [bx + di]
adc ebp, dword [eax + 0x23679d60]
xor dword [ebx], edi
ror dh, 0x3d
lds ebx, [ecx]
sub ebx, dword [eax + 0x6f]
and esi, dword [ecx]
cmp eax, eax
into
cmp eax, 0x582b19c5
outsd dx, dword [esi]
xor byte [eax], al
or dword [esi], edx
jo 0x47afa9
out 0x4c, eax
dec esp
test eax, 0xa3b81d7e
lds ebp, [edi + ebp*4 + 0x4899382f]
jl 0x47aed9
mov eax, 0xafacc5a3
das
cmp byte [ecx + 0x7c867c48], bl
dec esp
jl 0x47afa1
jg 0x47aef3
call 0xddefb273
sbb al, 0xcd
neg ebp
xor esp, ebx
lea ebp, [eax + ebp*4 - 0x7c2c7774]
sbb al, 0xe7
mov esp, 0x4d778d60
pop edx
movsb byte es:[edi], byte [esi]
aaa
mov ebx, 0x825808a7
and byte [esi - 0x780ed7e0], ah
and bl, ah
sti
mov dword [0x8488a3f6], eax
adc cl, byte [esi + esi*8 + 0x24]
adc byte [0x930d9c98], cl
or dword [ecx + ecx*2 + 0x39], edi
cmpsd dword [esi], dword es:[edi]
xor eax, 0xd3a7343c
invalid
syscall
das
sti
adc edi, dword [eax]
call dword [eax + ebx + 0x282f6880]
xor byte [esi + ecx*8 - 0x24], ch
or eax, 0xd8b57819
sub byte [eax], dh
insb byte es:[edi], dx
into
fmul qword [0xd8b57819]
inc edi
jne 0x47af48
dec eax
pop eax
pop ss
imul esp, dword [esp + edi], 0x52
inc ebx
or byte [esi], cl
cmpsd dword [esi], dword es:[edi]
xchg ecx, eax
add edi, ebp
hlt