Function at 0x47c0fd
Capabilities:
Encode data using xor

Disassembly:
clc
mov esi, ecx
push edi
mov edi, dword [esi]
test edi, edi
je 0x47c0e8
mov ecx, edi
call 0x21bf92
push 0xdb3368e0
push edi
call 0x487fe16
add eax, edi
push 0xc
push esi
call 0x487fe16
add eax, edi
pop edi
mov eax, esi
jne 0x47c130
add al, 9
add byte [eax], cl
je 0x47c150
push esi
mov esi, ecx
push edi
xor edi, edi
mov ebx, edi
mov ecx, dword [esi + 0x24]
and al, 0xe8
xor al, 0x10
mov edx, dword [esi + 4]
mov eax, dword [edx]
lea edx, [edx + 4]
add ebx, dword [eax + 4]
lea ebx, [ebp + 0x43]
add al, 0xf3
mov ecx, dword [ebp + 8]
push ebx
call 0x48470ece
or byte [edi - 0x75], bl
fisttp word [ecx + 0x7e39084d]
or byte [esi + 0x29], dh
sub dword [ecx - 0x73], edx
dec ebp
clc
push ecx
lea ecx, [ebp - 8]
add al, 0x98
push dword [eax + 1]
mov eax, dword [eax]
stc
add al, 0xf
push eax
call 0x25420e69
xor al, 0xe8
mov al, byte [0xfffb848d]
dec ebp
or al, bh
add al, 0x98
cwde
add edi, dword [eax + 4]
inc ebx
cmp ebx, dword [esi + 8]
jb 0x47c131
pop edi
jne 0x47c1b8
pop ebp
cmp dword [ecx + ecx], eax
push esi
mov esi, ecx
push edi
xor edi, edi
cmp dword [esi], edi
and al, 0x30
push edi
std
jmp dword [esi + edi*8 - 0x18]
enter 0x4c75, 0x46
push esp
push ebx
jl 0x47c1f0
call dword [eax + 0x75]
fist dword [ebx + 0x53]
mov dword [ebp + 0xc], eax
push dword [edi + 0x70]
ja 0x47c22a
movzx eax, word [edi + 0x78]
push dword [edi + 0x30]
push dword [edi + 0x20]
push eax
push dword [edi + 0x10]
cld
jbe 0x47c1cf
call dword [0xe8c7a8]
mov dword [esi], eax
cmp byte [eax + 0xd], 0x75
into
call 0x804e4ad4
js 0x47c1e3
jne 0x47c1a6
push 0x18
adc eax, 0xfd0e88cc
call dword [edi]
jmp 0x47c1db
int3
leave
mov dword [esi + 0x1c], eax
mov eax, dword [esi - 0x1f8a2c]
push eax
pop ebx
test eax, eax
push eax
call dword [0x537401d4]
rcl byte [eax - 1], 0x15
aam 1
je 0x47c24b
xor al, al
inc eax
adc al, 0x70
sar byte [eax + 0x53], cl
xor dh, byte [esp + ecx + 0x68]
or byte [eax - 0x18], dl
invalid
aam 0x75
loopne 0x47c22d
call dword [eax + 0x5b]
push eax
pop ebx
test dword [esi + 0x50], edx
call dword [0x537401d4]
jmp 0x47c288
or ecx, eax
or edx, ebx
mov dword [esi + 0x10], ecx
mov dword [esi + 0x14], edx
cmp byte [ebp + 0x10], bl
je 0x47c272
mov ecx, esi
push edi
cmp byte [esi + 0x30], bl
je 0x47c269
call fcn.0047cf63
jmp 0x47c26e
call fcn.0047ce8d
mov bl, al
jmp 0x47c288
mov dword [esi + 0x18], ebx
mov eax, dword [esi - 0x1f8a2c]
push eax
pop ebx
test eax, eax
push eax
call dword [0x537401d4]
mov bl, 1
test edi, edi
je 0x47c293
push edi
call dword [0x5374c790]
mov al, bl
clc
pop ebx
or byte [eax], al
dec dword [ebp + 0x558dd88e]
mov dword [esi + 0xc], edi
mov eax, dword [eax + 4]
int1
lea ecx, [ebx + 0x460453d8]
push esp
and eax, 0xc7e85008
push eax
push ebx
push ebx
push dword [esi + 0x20]
cld
jbe 0x47c2bf
call dword [0x8b49c7b8]
push eax
clc
dec ecx
mov edx, dword [eax - 8]
test edi, edi
jne 0x47c2d3
into
push 0x18
sub dword [edi - 0x1637c4], edx
mov esi, dword [ebp + 0x3c]
cmp dword [eax], ecx
cmp byte [esi + ecx*8 + 0x57], bl
push edi
call 0x7919d04a
push ebx
push ebx
push ebx
push ebx
push edi
call dword [0xb349c7ac]
jb 0x47c2d8
je 0x47c364
push edi
call fcn.0047c480
cmp eax, 0xf213e8cf
jne 0x47c364
lea esi, [eax]
or byte [ecx + 0x750c0e5d], cl
push 0xffffffffffffff8b
mov dword [ebp - 4], 0x28244420
sbb byte [eax + 0x45], dl
fcom qword [eax + 0x6a]
add eax, 0xa015ff57
invalid
into
push 0x18
sub cl, ah
mov byte [esi], cl
std
call dword [edi]
jmp 0x47c368
int3