Function at 0x5b4110
Capabilities:
Encode data using xor

Disassembly:
lea ecx, [esp + 4]
and esp, 0xfffffff0
push dword [ecx - 4]
push ebp
mov ebp, esp
push edi
push esi
push ebx
push ecx
sub esp, 0x868
mov eax, dword [ecx]
mov edi, dword [ecx + 4]
mov dword [ebp - 0x828], 0
mov dword [ebp - 0x824], 0
mov dword [ebp - 0x844], eax
mov eax, dword [ecx + 8]
mov dword [ebp - 0x820], 0
mov dword [ebp - 0x84c], eax
mov eax, dword [ecx + 0xc]
mov dword [ebp - 0x840], eax
mov eax, dword [ecx + 0x10]
mov dword [ebp - 0x83c], eax
call fcn.007239a8
cdq
shr edx, 0x1d
add eax, edx
and eax, 7
sub eax, edx
mov dword [ebp - 0x848], eax
call fcn.007239a8
mov byte [ebp - 0x82a], 0
mov dword [ebp - 0x850], eax
cmp edi, 2
je 0x5b41c0
cmp edi, 3
je 0x5b4758
xor eax, eax
cmp edi, 1
je 0x5b4710
lea esp, [ebp - 0x10]
pop ecx
pop ebx
pop esi
pop edi
pop ebp
lea esp, [ecx - 4]
ret
mov eax, dword [ebp - 0x840]
mov esi, 0xb
mov edx, dword [eax + 0x3c0]
test edx, edx
je 0x5b47a0
lea esi, [esi]
movzx eax, byte [ebp - 0x848]
lea ebx, [ebp - 0x818]
lea ecx, [ebp - 0x828]
mov byte [ebp - 0x818], al
mov dword [esp], ebx
call fcn.00736560
sub esp, 4
mov eax, edi
lea ecx, [ebp - 0x828]
mov byte [ebp - 0x818], al
mov dword [esp], ebx
call fcn.00736560
sub esp, 4
mov byte [ebp - 0x818], 0xb
lea ecx, [ebp - 0x828]
mov dword [esp], ebx
call fcn.00736560
sub esp, 4
mov eax, esi
lea ecx, [ebp - 0x828]
mov byte [ebp - 0x818], al
mov dword [esp], ebx
call fcn.00736560
mov eax, dword [ebp - 0x84c]
sub esp, 4
lea ecx, [ebp - 0x828]
mov esi, dword [eax + 0xb8]
mov eax, esi
mov byte [ebp - 0x818], al
mov dword [esp], ebx
call fcn.00736560
sub esp, 4
mov eax, esi
lea ecx, [ebp - 0x828]
mov byte [ebp - 0x818], ah
mov dword [esp], ebx
call fcn.00736560
mov eax, esi
sub esp, 4
lea ecx, [ebp - 0x828]
shr eax, 0x10
mov byte [ebp - 0x818], al
mov dword [esp], ebx
call fcn.00736560
mov eax, esi
sub esp, 4
lea ecx, [ebp - 0x828]
shr eax, 0x18
mov byte [ebp - 0x818], al
mov dword [esp], ebx
call fcn.00736560
sub esp, 4
mov byte [ebp - 0x818], 0
lea ecx, [ebp - 0x828]
mov dword [esp], ebx
call fcn.00736560
sub esp, 4
lea esi, [ebp - 0x82a]
mov ecx, str.6.11
mov edx, 1
mov dword [esp], esi
lea eax, [ebp - 0x828]
call fcn.005b3f70
mov eax, dword [ebp - 0x83c]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x840]
mov dword [esp], 8
mov dword [esp + 8], eax
mov dword [esp + 4], 0
call fcn.00516840
mov ecx, eax
test eax, eax
je 0x5b433b
mov dword [esp], esi
mov edx, 0x10
lea eax, [ebp - 0x828]
call fcn.005b3f70
mov eax, dword [ebp - 0x83c]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x840]
mov dword [esp], 4
mov dword [esp + 8], eax
mov dword [esp + 4], 0
call fcn.00516840
test eax, eax
je 0x5b437c
mov dword [esp], esi
mov ecx, eax
mov edx, 0x11
lea eax, [ebp - 0x828]
call fcn.005b3f70
lea eax, [edi - 1]
cmp eax, 1
jbe 0x5b4610
cmp byte [0x902060], 0
jne 0x5b469b
cmp edi, 3
jne 0x5b44cf
mov eax, dword [ebp - 0x83c]
test eax, eax
je 0x5b44cf
mov ecx, dword [eax + 0x1c4]
test ecx, ecx
je 0x5b43c9
mov dword [esp], esi
mov edx, 0x30
lea eax, [ebp - 0x828]
call fcn.005b3f70
mov eax, dword [ebp - 0x83c]
mov ecx, dword [eax + 0x1c8]
test ecx, ecx
je 0x5b43ec
mov dword [esp], esi
mov edx, 0x31
lea eax, [ebp - 0x828]
call fcn.005b3f70
mov eax, dword [ebp - 0x83c]
mov ecx, dword [eax + 0x1d0]
test ecx, ecx
je 0x5b440f
mov dword [esp], esi
mov edx, 0x32
lea eax, [ebp - 0x828]
call fcn.005b3f70
mov eax, dword [ebp - 0x83c]
cmp byte [eax + 0x28c], 0
je 0x5b4490
mov eax, dword [eax + 0x1e8]
test eax, eax
je 0x5b4490
mov eax, dword [0x773424]
test eax, eax
je 0x5b4490
xor edi, edi
jmp 0x5b4445
add edi, 1
cmp edi, 8
je 0x5b4490
mov eax, dword [0x773424]
cdq
mov ecx, edi
shrd eax, edx, cl
shr edx, cl
test cl, 0x20
je 0x5b4454
mov eax, edx
and eax, 1
or eax, 0
je 0x5b4438
mov dword [esp + 8], ebx
mov dword [esp + 4], edi
mov eax, dword [ebp - 0x83c]
mov dword [esp], eax
call fcn.0063b360
test eax, eax
je 0x5b4438
mov dword [esp], esi
mov ecx, eax
lea edx, [edi + 0x40]
lea eax, [ebp - 0x828]
call fcn.005b3f70
jmp 0x5b4438
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0x400
mov dword [esp + 8], 0
mov dword [esp + 4], ebx
mov eax, dword [ebp - 0x83c]
mov dword [esp], eax
call fcn.0067f030
mov dword [esp], esi
mov ecx, eax
mov edx, 0x38
lea eax, [ebp - 0x828]
call fcn.005b3f70
cmp byte [ebp - 0x82a], 0
jne 0x5b44e5
mov edx, esi
lea eax, [ebp - 0x828]
call fcn.005b3ec0
lea eax, [ebp - 0x829]
mov byte [ebp - 0x829], 0
lea ecx, [ebp - 0x828]
mov dword [esp], eax
call fcn.00736560
mov edx, dword [ebp - 0x828]
mov edi, dword [ebp - 0x824]
sub esp, 4
movzx esi, byte [ebp - 0x850]
sub edi, edx
lea eax, [edx + 2]
or esi, 1
lea ecx, [edx + edi]
cmp edi, 2
jbe 0x5b4890
mov ebx, esi
mov esi, edx
mov edx, ebx
xor byte [eax], dl
add eax, 1
cmp eax, ecx
jne 0x5b4530
mov edx, esi
xor eax, eax
lea esi, [esi]
movzx esi, byte [edx]
add edx, 1
add eax, esi
cmp ecx, edx
jne 0x5b4540
mov byte [ebp - 0x829], al
lea eax, [ebp - 0x829]
lea ecx, [ebp - 0x828]
mov dword [esp], eax
call fcn.00736560
mov ebx, dword [ebp - 0x828]
mov ecx, dword [ebp - 0x824]
sub esp, 4
sub ecx, ebx
cmp ecx, 2
jbe 0x5b45c7
mov eax, dword [ebp - 0x848]
mov dword [ebp - 0x83c], ecx
lea edi, [ecx - 2]
xor edx, edx
shl eax, 6
lea esi, [eax + 0x7757c0]
lea esi, [esi]
lea esi, [esi]
mov eax, edx
movzx ecx, byte [ebx + edx + 2]
add edx, 1
and eax, 0x3f
movzx eax, byte [esi + eax]
xor eax, 0x69
and eax, 0x7f
xor eax, ecx
mov byte [ebx + edx + 1], al
cmp edx, edi
jne 0x5b45a0
mov ecx, dword [ebp - 0x83c]
mov eax, dword [ebp - 0x844]
test eax, eax
je 0x5b47b8
mov dword [esp + 0xc], 0
mov dword [esp + 8], ecx
mov eax, dword [ebp - 0x844]
mov dword [esp], ebx
mov dword [esp + 4], eax
call fcn.00506550
test ebx, ebx
je 0x5b45ff
mov dword [esp], ebx
call fcn.00712028
mov eax, dword [ebp - 0x844]
jmp 0x5b41ac
mov eax, dword [ebp - 0x83c]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x840]
mov dword [esp], 1
mov dword [esp + 8], eax
mov dword [esp + 4], 0
call fcn.00516840
mov ecx, eax
test eax, eax
je 0x5b4651
mov dword [esp], esi
mov edx, 0x12
lea eax, [ebp - 0x828]
call fcn.005b3f70
mov eax, dword [ebp - 0x83c]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x840]
mov dword [esp], 2
mov dword [esp + 8], eax
mov dword [esp + 4], 0
call fcn.00516840
test eax, eax
je 0x5b4692
mov dword [esp], esi
mov ecx, eax
mov edx, 0x13
lea eax, [ebp - 0x828]
call fcn.005b3f70
cmp byte [0x902060], 0
je 0x5b46d5
mov ecx, dword [0x901950]
test ecx, ecx
je 0x5b46b8
mov dword [esp], esi
mov edx, 0x70
lea eax, [ebp - 0x828]
call fcn.005b3f70
mov ecx, dword [0x901954]
test ecx, ecx
je 0x5b46d5
mov dword [esp], esi
mov edx, 0x71
lea eax, [ebp - 0x828]
call fcn.005b3f70
cmp edi, 2
jne 0x5b47f0
mov eax, dword [ebp - 0x840]
test eax, eax
je 0x5b47f0
mov ecx, dword [eax]
test ecx, ecx
je 0x5b47e0
mov dword [esp], esi
mov edx, 0x20
lea eax, [ebp - 0x828]
call fcn.005b3f70
jmp 0x5b44cf
mov eax, dword [ebp - 0x84c]
xor esi, esi
test eax, eax
je 0x5b41e0
mov eax, dword [eax + 0xc8]
mov esi, 9
cmp eax, 2
je 0x5b41e0
mov esi, 0xb
cmp eax, 3
je 0x5b41e0
cmp eax, 1
sete al
movzx eax, al
lea esi, [eax + eax*4]
jmp 0x5b41e0
mov ebx, dword [ebp - 0x83c]
xor esi, esi
test ebx, ebx
je 0x5b41e0
mov eax, dword [ebx + 0x544]
test eax, eax
je 0x5b41e0
mov esi, dword [eax + 0x1c]
cmp esi, 9
jne 0x5b41e0
mov ecx, dword [ebx + 0x8a0]
mov eax, 7
test ecx, ecx
cmovne esi, eax
jmp 0x5b41e0
cmp byte [eax + 0x3c8], 1
sbb esi, esi
and esi, 4
add esi, 5
jmp 0x5b41e0
lea eax, [ecx + ecx]
mov dword [ebp - 0x83c], ecx
mov dword [esp], eax
call fcn.00723968
mov ecx, dword [ebp - 0x83c]
mov dword [ebp - 0x844], eax
jmp 0x5b45d5
mov ecx, dword [eax + 0x10]
test ecx, ecx
je 0x5b44cf
jmp 0x5b46f6
cmp edi, 1
jne 0x5b4395
xor eax, eax
pxor xmm0, xmm0
lea edi, [ebp - 0x808]
mov ecx, 0x1fc
movups xmmword [ebp - 0x818], xmm0
rep stosd dword es:[edi], eax
mov edi, dword [ebp - 0x84c]
mov eax, dword [edi + 0x94]
mov edx, dword [edi + 0x98]
test eax, eax
je 0x5b48e0
test edx, edx
je 0x5b48c1
mov ecx, dword [edi + 0x9c]
test ecx, ecx
je 0x5b489f
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], eax
mov dword [esp + 8], str._s____s____s
mov dword [esp + 4], 0x800
mov dword [esp], ebx
call fcn.00723ce0
movzx eax, byte [ebp - 0x818]
test al, al
je 0x5b44cf
mov dword [esp], esi
mov ecx, ebx
mov edx, 0x28
lea eax, [ebp - 0x828]
call fcn.005b3f70
jmp 0x5b44cf
test edi, edi
jne 0x5b453b
xor eax, eax
jmp 0x5b454c
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0x7dacdf
mov dword [esp + 4], 0x800
mov dword [esp], ebx
call fcn.00723ce0
jmp 0x5b4863
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0x7dacdc
mov dword [esp + 4], 0x800
mov dword [esp], ebx
call fcn.00723ce0
jmp 0x5b4863
test edx, edx
je 0x5b44cf
mov dword [esp + 0xc], edx
mov dword [esp + 8], 0x7dacdc
mov dword [esp + 4], 0x800
mov dword [esp], ebx
call fcn.00723ce0
jmp 0x5b4863