Function at 0x47afa0
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x34
call fcn.0055d6e0
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 0x47afcc
mov dword [esp + 0x50], eax
test eax, eax
jne 0x47aff4
sub esp, 8
lea ecx, [eax + 6]
mov edx, 0xa2
push 0x9f
call fcn.0040d810
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 0x47b25a
mov ebx, dword [esp + 0x54]
cmp ebx, 0xffffffff
jne 0x47b02b
mov ebx, edi
mov ecx, dword [ecx + 0x10]
mov eax, dword [ecx + 4]
test eax, eax
jne 0x47b05a
mov eax, 7
mov dword [esp + 0x18], 7
mov dword [esp + 0x14], eax
jmp 0x47b09b
cmp ebx, 0xfffffffe
jne 0x47b032
jmp 0x47b00e
jge 0x47b00e
sub esp, 8
push 0x88
mov edx, 0x94
mov ecx, 4
call fcn.0040d810
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.00412c00
mov ecx, dword [esi + edi - 4]
sub eax, 0x21
and eax, 7
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], eax
call fcn.00412c00
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 0x47b0b8
mov byte [esi], 0
inc esi
dec ecx
mov dword [esp + 0x1c], ecx
lea eax, [edi + 2]
cmp ecx, eax
jge 0x47b0c9
sub esp, 8
push 0x6e
jmp 0x47b03c
mov edi, ecx
sub edi, dword [esp + 0x10]
lea eax, [edi - 2]
cmp ebx, 0xfffffffe
jne 0x47b0db
mov ebx, eax
jmp 0x47b0df
cmp ebx, eax
jg 0x47b0bf
test ebx, ebx
jle 0x47b113
push 0xf2
mov ecx, ebx
call fcn.0040fbe0
mov ebp, eax
add esp, 4
test ebp, ebp
jne 0x47b102
sub esp, 8
push 0x41
jmp 0x47b03c
mov edx, ebx
mov ecx, ebp
call fcn.00416ff0
test eax, eax
jle 0x47b228
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.00440ee0
add esp, 4
test eax, eax
je 0x47b228
push 8
lea eax, [esp + 0x2c]
push 0x6b3270
push eax
call dword [esp + 0x48]
add esp, 0xc
test eax, eax
je 0x47b228
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 0x47b228
test ebx, ebx
je 0x47b197
push ebx
lea eax, [esp + 0x2c]
push ebp
push eax
call dword [esp + 0x48]
add esp, 0xc
test eax, eax
je 0x47b228
lea edx, [edi - 1]
push 0
lea edx, [edx + esi]
lea ecx, [esp + 0x2c]
call fcn.004410f0
add esp, 4
test eax, eax
je 0x47b228
lea ecx, [esp + 0x28]
call fcn.00441370
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.00424920
add esp, 0xc
test eax, eax
jne 0x47b228
sub edi, ebx
xor byte [edi + esi - 2], 1
lea ecx, [edi + esi]
dec ecx
test ebx, ebx
jle 0x47b1fe
xor edx, edx
jmp 0x47b1f0
mov al, byte [edx + ebp]
lea ecx, [ecx + 1]
xor byte [ecx - 1], al
inc edx
cmp edx, ebx
jl 0x47b1f0
cmp dword [esp + 0x14], 0
je 0x47b217
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 0x47b25a
mov eax, dword [0x6fd384]
test eax, eax
je 0x47b23d
push 0
push ebp
call eax
add esp, 8
push ebp
call dword [0x6f5478]
mov ecx, dword [0x6fd384]
add esp, 4
test ecx, ecx
je 0x47b25a
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