Function at 0x47a7b0
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x34
call fcn.0054d1b0
mov eax, dword [esp + 0x3c]
push ebx
push ebp
push esi
xor ebp, ebp
mov dword [esp + 0x1c], 0
mov esi, edx
push edi
mov dword [esp + 0x24], esi
cmp dword [esp + 0x50], ebp
jne 0x47a7dc
mov dword [esp + 0x50], eax
test eax, eax
jne 0x47a804
sub esp, 8
lea ecx, [eax + 6]
mov edx, 0xa2
push 0x9f
call fcn.0040d040
mov eax, dword [esp + 0x2c]
add esp, 0xc
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x34
ret
mov edi, dword [eax + 8]
mov dword [esp + 0x10], edi
test edi, edi
js 0x47aa6a
mov ebx, dword [esp + 0x54]
cmp ebx, 0xffffffff
jne 0x47a83b
mov ebx, edi
mov ecx, dword [ecx + 0x10]
mov eax, dword [ecx + 4]
test eax, eax
jne 0x47a86a
mov eax, 7
mov dword [esp + 0x18], 7
mov dword [esp + 0x14], eax
jmp 0x47a8ab
cmp ebx, 0xfffffffe
jne 0x47a842
jmp 0x47a81e
jge 0x47a81e
sub esp, 8
push 0x88
mov edx, 0x94
mov ecx, 4
call fcn.0040d040
mov eax, dword [esp + 0x2c]
add esp, 0xc
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x34
ret
mov esi, dword [ecx]
lea edi, [eax*4]
shl eax, 5
mov dword [esp + 0x1c], eax
mov ecx, dword [edi + esi - 4]
call fcn.00412430
mov ecx, dword [esi + edi - 4]
sub eax, 0x21
and eax, 7
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], eax
call fcn.00412430
mov ecx, dword [esp + 0x1c]
mov esi, dword [esp + 0x24]
add ecx, 0xffffffe7
mov edi, dword [esp + 0x10]
add eax, ecx
cdq
and edx, 7
lea ecx, [edx + eax]
sar ecx, 3
mov dword [esp + 0x1c], ecx
cmp dword [esp + 0x14], ebp
jne 0x47a8c8
mov byte [esi], 0
inc esi
dec ecx
mov dword [esp + 0x1c], ecx
lea eax, [edi + 2]
cmp ecx, eax
jge 0x47a8d9
sub esp, 8
push 0x6e
jmp 0x47a84c
mov edi, ecx
sub edi, dword [esp + 0x10]
lea eax, [edi - 2]
cmp ebx, 0xfffffffe
jne 0x47a8eb
mov ebx, eax
jmp 0x47a8ef
cmp ebx, eax
jg 0x47a8cf
test ebx, ebx
jle 0x47a923
push 0xf2
mov ecx, ebx
call fcn.0040f410
mov ebp, eax
add esp, 4
test ebp, ebp
jne 0x47a912
sub esp, 8
push 0x41
jmp 0x47a84c
mov edx, ebx
mov ecx, ebp
call fcn.00416820
test eax, eax
jle 0x47aa38
mov edx, dword [esp + 0x4c]
lea ecx, [esp + 0x28]
xor eax, eax
push eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], eax
call fcn.00440700
add esp, 4
test eax, eax
je 0x47aa38
push 8
lea eax, [esp + 0x2c]
push 0x693f40
push eax
call dword [esp + 0x48]
add esp, 0xc
test eax, eax
je 0x47aa38
push dword [esp + 0x10]
lea eax, [esp + 0x2c]
push dword [esp + 0x4c]
push eax
call dword [esp + 0x48]
add esp, 0xc
test eax, eax
je 0x47aa38
test ebx, ebx
je 0x47a9a7
push ebx
lea eax, [esp + 0x2c]
push ebp
push eax
call dword [esp + 0x48]
add esp, 0xc
test eax, eax
je 0x47aa38
lea edx, [edi - 1]
push 0
lea edx, [edx + esi]
lea ecx, [esp + 0x2c]
call fcn.00440910
add esp, 4
test eax, eax
je 0x47aa38
lea ecx, [esp + 0x28]
call fcn.00440b90
push dword [esp + 0x50]
lea ecx, [edi - 1]
push dword [esp + 0x14]
lea eax, [ecx + esi]
mov edx, ecx
push eax
mov ecx, esi
call fcn.00424140
add esp, 0xc
test eax, eax
jne 0x47aa38
sub edi, ebx
xor byte [edi + esi - 2], 1
lea ecx, [edi + esi]
dec ecx
test ebx, ebx
jle 0x47aa0e
xor edx, edx
jmp 0x47aa00
mov al, byte [edx + ebp]
lea ecx, [ecx + 1]
xor byte [ecx - 1], al
inc edx
cmp edx, ebx
jl 0x47aa00
cmp dword [esp + 0x14], 0
je 0x47aa27
mov ecx, 8
mov eax, 0xff
sub ecx, dword [esp + 0x18]
sar eax, cl
and byte [esi], al
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x20], 1
mov byte [eax + esi - 1], 0xbc
test ebp, ebp
je 0x47aa6a
mov eax, dword [0x6da740]
test eax, eax
je 0x47aa4d
push 0
push ebp
call eax
add esp, 8
push ebp
call dword [0x6d31f8]
mov ecx, dword [0x6da740]
add esp, 4
test ecx, ecx
je 0x47aa6a
push 1
push 0
call ecx
add esp, 8
mov eax, dword [esp + 0x20]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x34
ret