Function at 0x47b170
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x24
mov eax, dword [0x78f694]
xor eax, esp
mov dword [esp + 0x20], eax
mov ecx, dword [esp + 0x30]
push esi
mov esi, dword [esp + 0x30]
push edi
mov edi, dword [esp + 0x30]
mov dword [esp + 8], edi
mov dword [esp + 0xc], ecx
call fcn.00484e60
test edi, edi
je 0x47b4ac
test esi, esi
je 0x47b4ac
mov eax, esi
lea edx, [eax + 1]
mov edi, edi
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x47b1b0
sub eax, edx
cmp eax, 8
jb 0x47b4ac
mov eax, edi
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x47b1d0
sub eax, edx
cmp eax, 9
jb 0x47b4ac
push 0x10
lea eax, [esp + 0x14]
push esi
push eax
call fcn.0047e4d0
add esp, 0xc
mov byte [esp + 0x20], 0
xor edx, edx
mov ecx, 1
movsx esi, byte [edi + ecx - 1]
movsx eax, byte [edi + ecx]
sub eax, esi
jns 0x47b20f
neg eax
test edx, edx
jge 0x47b217
add edx, eax
jmp 0x47b219
sub edx, eax
add ecx, 1
cmp ecx, 8
jl 0x47b200
test edx, edx
jge 0x47b227
neg edx
lea eax, [edx + 0x30]
cmp eax, 0x30
jl 0x47b234
cmp eax, 0x39
jle 0x47b272
cmp eax, 0x61
jl 0x47b23e
cmp eax, 0x7a
jle 0x47b272
cmp eax, 0x41
jl 0x47b248
cmp eax, 0x5a
jle 0x47b272
mov eax, 0x7a
sub eax, edx
cmp eax, 0x30
jl 0x47b259
cmp eax, 0x39
jle 0x47b272
cmp eax, 0x61
jl 0x47b263
cmp eax, 0x7a
jle 0x47b272
cmp eax, 0x41
jl 0x47b26d
cmp eax, 0x5a
jle 0x47b272
mov eax, 0x78
movsx ecx, byte [edi + 7]
mov byte [esp + 0x18], al
movsx eax, byte [edi + 8]
xor eax, ecx
movsx ecx, byte [edi + 6]
xor eax, ecx
movsx ecx, byte [edi + 5]
xor eax, ecx
movsx ecx, byte [edi + 4]
xor eax, ecx
movsx ecx, byte [edi + 3]
xor eax, ecx
movsx ecx, byte [edi + 2]
xor eax, ecx
movsx ecx, byte [edi]
xor eax, ecx
movsx ecx, byte [edi + 1]
lea edx, [edi + 1]
xor eax, ecx
cmp eax, 0x30
jge 0x47b2b9
movsx eax, byte [esp + 0x10]
add eax, 1
cmp eax, 0x7a
jle 0x47b2c6
movsx eax, byte [esp + 0x11]
add eax, 1
cmp eax, 0x30
jl 0x47b2d0
cmp eax, 0x39
jle 0x47b2e9
cmp eax, 0x61
jl 0x47b2da
cmp eax, 0x7a
jle 0x47b2e9
cmp eax, 0x41
jl 0x47b2e4
cmp eax, 0x5a
jle 0x47b2e9
mov eax, 0x52
mov byte [esp + 0x19], al
xor ecx, ecx
mov esi, 1
movsx edi, byte [esp + esi + 0xf]
movsx eax, byte [esp + esi + 0x10]
sub eax, edi
jns 0x47b304
neg eax
test ecx, ecx
jge 0x47b30c
add ecx, eax
jmp 0x47b30e
sub ecx, eax
add esi, 1
cmp esi, 8
jl 0x47b2f4
push ebx
push ebp
mov ebx, 2
lea ecx, [ecx]
movsx edi, byte [edx + 1]
movsx esi, byte [edx - 1]
mov eax, edi
sub eax, esi
jns 0x47b330
neg eax
test ecx, ecx
jge 0x47b338
add ecx, eax
jmp 0x47b33a
sub ecx, eax
movsx esi, byte [edx + 2]
movsx ebp, byte [edx]
mov eax, esi
sub eax, ebp
jns 0x47b349
neg eax
test ecx, ecx
jge 0x47b351
add ecx, eax
jmp 0x47b353
sub ecx, eax
movsx eax, byte [edx + 3]
sub eax, edi
jns 0x47b35d
neg eax
test ecx, ecx
jge 0x47b365
add ecx, eax
jmp 0x47b367
sub ecx, eax
movsx eax, byte [edx + 4]
sub eax, esi
jns 0x47b371
neg eax
test ecx, ecx
jge 0x47b379
add ecx, eax
jmp 0x47b37b
sub ecx, eax
add edx, 4
sub ebx, 1
jne 0x47b320
test ecx, ecx
jge 0x47b389
neg ecx
lea eax, [ecx + 0x30]
cmp eax, 0x30
jl 0x47b396
cmp eax, 0x39
jle 0x47b3d4
cmp eax, 0x61
jl 0x47b3a0
cmp eax, 0x7a
jle 0x47b3d4
cmp eax, 0x41
jl 0x47b3aa
cmp eax, 0x5a
jle 0x47b3d4
mov eax, 0x7a
sub eax, ecx
cmp eax, 0x30
jl 0x47b3bb
cmp eax, 0x39
jle 0x47b3d4
cmp eax, 0x61
jl 0x47b3c5
cmp eax, 0x7a
jle 0x47b3d4
cmp eax, 0x41
jl 0x47b3cf
cmp eax, 0x5a
jle 0x47b3d4
mov eax, 0x6e
mov edx, dword [esp + 0x10]
mov byte [esp + 0x22], al
xor eax, eax
xor ecx, ecx
movsx esi, byte [edx + ecx]
add ecx, 2
xor eax, esi
cmp ecx, 0xa
jl 0x47b3e0
movsx ebx, byte [esp + 0x1f]
movsx edx, byte [esp + 0x1e]
movsx ebp, byte [esp + 0x1c]
movsx edi, byte [esp + 0x1b]
movsx esi, byte [esp + 0x1a]
movsx ecx, byte [esp + 0x1d]
xor edx, ebx
movsx ebx, byte [esp + 0x19]
xor edx, ebx
movsx ebx, byte [esp + 0x18]
xor edx, ebx
xor edx, ebp
xor edx, edi
xor edx, esi
xor edx, ecx
xor eax, edx
cmp eax, 0x30
jge 0x47b42e
lea eax, [ecx + 0x14]
cmp eax, 0x7a
jle 0x47b436
lea eax, [esi - 0xa]
cmp eax, 0x30
jge 0x47b43e
lea eax, [edi + 0x14]
cmp eax, 0x7a
jle 0x47b446
lea eax, [ebp - 0xa]
cmp eax, 0x30
pop ebp
pop ebx
jl 0x47b452
cmp eax, 0x39
jle 0x47b46b
cmp eax, 0x61
jl 0x47b45c
cmp eax, 0x7a
jle 0x47b46b
cmp eax, 0x41
jl 0x47b466
cmp eax, 0x5a
jle 0x47b46b
mov eax, 0x47
mov esi, dword [esp + 0xc]
mov byte [esp + 0x1b], al
mov eax, dword [esp + 8]
push eax
mov ecx, esi
mov byte [esp + 0x20], 0
call fcn.00485280
push 0x5f
mov ecx, esi
call fcn.00487e40
lea ecx, [esp + 0x10]
push ecx
mov ecx, esi
call fcn.00485280
pop edi
mov al, 1
pop esi
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.0062cbd3
add esp, 0x24
ret
mov ecx, dword [esp + 0x28]
pop edi
pop esi
xor ecx, esp
xor al, al
call fcn.0062cbd3
add esp, 0x24
ret