Function at 0x5b1040
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0xd4
call fcn.005c5c30
mov eax, dword [0x65db30]
xor eax, esp
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0xd8]
mov ecx, dword [esp + 0xf0]
mov edx, dword [esp + 0xf4]
push ebp
push esi
mov esi, dword [esp + 0xe8]
xor ebp, ebp
push edi
mov edi, dword [esp + 0xf4]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0xf0]
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x104]
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x108]
shr esi, 3
mov dword [esp + 0x14], eax
mov dword [esp + 0x3c], edi
mov dword [esp + 0x50], ecx
mov dword [esp + 0x10], edx
mov dword [esp + 0x34], ebp
mov dword [esp + 0x38], ebp
mov dword [esp + 0x30], 2
cmp esi, 0x14
je 0x5b10d3
cmp esi, 0x1c
je 0x5b10d3
cmp esi, 0x20
jne 0x5b1151
cmp eax, ebp
jne 0x5b1102
cmp esi, 0x14
jne 0x5b10e7
call fcn.004a7770
mov dword [esp + 0x14], eax
jmp 0x5b110d
cmp esi, 0x1c
jne 0x5b10f7
call fcn.004a7860
mov dword [esp + 0x14], eax
jmp 0x5b110d
call fcn.004a7870
mov dword [esp + 0x14], eax
jmp 0x5b110d
push eax
call fcn.004ba3d0
add esp, 4
mov esi, eax
mov eax, dword [esp + 0xe8]
cmp eax, 0x200
jae 0x5b1120
mov eax, 0x200
add eax, 0x3f
and eax, 0xffffffc0
mov dword [esp + 0xe8], eax
cmp edi, ebp
je 0x5b1181
mov eax, dword [esp + 0xf8]
cmp eax, esi
jae 0x5b116b
push 0x55
push 0x63c8f0
push 0x6e
push 0x7d
push 0xa
call fcn.0049a370
add esp, 0x14
pop edi
pop esi
xor eax, eax
pop ebp
mov ecx, dword [esp + 0xd0]
xor ecx, esp
call fcn.005c5718
add esp, 0xd4
ret
jbe 0x5b116f
mov eax, esi
push eax
lea eax, [esp + 0xa0]
push edi
push eax
call sub.MSVCR100.dll_memcpy
add esp, 0xc
call fcn.0054b080
mov dword [esp + 0x20], eax
cmp eax, ebp
je 0x5b174e
call fcn.0053d230
mov ebp, eax
test ebp, ebp
je 0x5b174e
push ebp
call fcn.0053d320
push ebp
call fcn.0053d3b0
push ebp
mov dword [esp + 0x18], eax
call fcn.0053d3b0
push ebp
mov dword [esp + 0x2c], eax
call fcn.0053d3b0
push ebp
mov dword [esp + 0x40], eax
call fcn.0053d3b0
push ebp
mov dword [esp + 0x30], eax
call fcn.0053d3b0
push ebp
mov dword [esp + 0x70], eax
call fcn.0053d3b0
push ebp
mov dword [esp + 0x60], eax
call fcn.0053d3b0
push ebp
mov dword [esp + 0x70], eax
call fcn.0053d3b0
add esp, 0x24
mov dword [esp + 0x28], eax
test eax, eax
je 0x5b174e
mov eax, dword [esp + 0xe8]
dec eax
push eax
call fcn.005058e0
mov ecx, dword [esp + 0x2c]
push eax
push ecx
call fcn.00505840
add esp, 0xc
test eax, eax
je 0x5b174e
push ebx
jmp 0x5b1230
mov ebx, dword [esp + 0x3c]
mov eax, dword [esp + 0x14]
xor edx, edx
cmp dword [esp + 0x40], edx
push ebx
sete dl
push 0
push eax
mov edi, edx
call fcn.005ad7d0
inc ebx
add esp, 0xc
mov dword [esp + 0x3c], ebx
test eax, eax
je 0x5b174d
test edi, edi
je 0x5b127b
lea ecx, [esp + 0xa0]
push esi
push ecx
call fcn.004b8cc0
add esp, 8
test eax, eax
jle 0x5b174d
jmp 0x5b1283
mov dword [esp + 0x40], 0
push esi
lea edx, [esp + 0xa4]
push edx
lea eax, [esp + 0x88]
push eax
call sub.MSVCR100.dll_memcpy
push esi
lea ecx, [esp + 0xb0]
push ecx
lea edx, [esp + 0xd4]
push edx
call sub.MSVCR100.dll_memcpy
lea eax, [esi - 1]
add esp, 0x18
test eax, eax
js 0x5b12cc
lea esp, [esp]
inc byte [esp + eax + 0x80]
jne 0x5b12cc
dec eax
jns 0x5b12c0
mov eax, dword [esp + 0x18]
push 0
push eax
push 0
lea ecx, [esp + 0x6c]
push ecx
lea edx, [esp + 0xb0]
push esi
push edx
call fcn.004cdc20
add esp, 0x18
test eax, eax
je 0x5b174d
mov eax, dword [esp + 0x18]
push 0
push eax
push 0
lea ecx, [esp + 0xcc]
push ecx
lea edx, [esp + 0x90]
push esi
push edx
call fcn.004cdc20
add esp, 0x18
test eax, eax
je 0x5b174d
xor eax, eax
test esi, esi
jle 0x5b1333
mov cl, byte [esp + eax + 0xc0]
xor byte [esp + eax + 0x60], cl
inc eax
cmp eax, esi
jl 0x5b1323
mov edx, dword [esp + 0x1c]
or byte [esp + 0x60], 0x80
or byte [esp + esi + 0x5f], 1
push edx
lea eax, [esp + 0x64]
push esi
push eax
call fcn.005069a0
add esp, 0xc
test eax, eax
je 0x5b174d
mov ebx, dword [esp + 0x14]
mov ecx, dword [esp + 0x1c]
push ebx
push edi
push ebp
push 0x40
push ecx
call fcn.005adc30
add esp, 0x14
test eax, eax
jg 0x5b137d
je 0x5b1230
jmp 0x5b174d
push 0
push 2
push ebx
call fcn.005ad7d0
add esp, 0xc
test eax, eax
je 0x5b174d
push 0
mov edx, ebx
push 3
push edx
call fcn.005ad7d0
add esp, 0xc
test eax, eax
je 0x5b174d
mov ecx, dword [esp + 0xec]
lea ecx, [ecx - 1]
mov eax, 0xcccccccd
mul ecx
mov ebx, edx
mov dword [esp + 0x28], 0
shr ebx, 7
mov eax, dword [esp + 0x28]
test eax, eax
je 0x5b13e7
mov edx, dword [esp + 0x14]
push eax
push 0
push edx
call fcn.005ad7d0
add esp, 0xc
test eax, eax
je 0x5b174d
mov eax, dword [esp + 0x30]
push eax
call fcn.005060c0
add esp, 4
xor edi, edi
test ebx, ebx
js 0x5b149a
mov edi, edi
lea eax, [esi - 1]
test eax, eax
js 0x5b1413
inc byte [esp + eax + 0x80]
jne 0x5b1413
dec eax
jns 0x5b1407
mov ecx, dword [esp + 0x18]
push 0
push ecx
push 0
lea edx, [esp + 0x6c]
push edx
lea eax, [esp + 0x90]
push esi
push eax
call fcn.004cdc20
add esp, 0x18
test eax, eax
je 0x5b174d
mov ecx, dword [esp + 0x10]
push ecx
lea edx, [esp + 0x64]
push esi
push edx
call fcn.005069a0
add esp, 0xc
test eax, eax
je 0x5b174d
lea eax, [esi*8]
imul eax, edi
push eax
mov eax, dword [esp + 0x14]
push eax
push eax
call fcn.00505840
add esp, 0xc
test eax, eax
je 0x5b174d
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x30]
push ecx
push eax
push eax
call fcn.0053f0f0
add esp, 0xc
test eax, eax
je 0x5b174d
inc edi
cmp edi, ebx
jle 0x5b1400
mov eax, dword [esp + 0xec]
mov edi, dword [esp + 0x30]
dec eax
push eax
push edi
call fcn.00506840
add esp, 8
test eax, eax
je 0x5b174d
push edi
mov edi, dword [esp + 0x5c]
push edi
call fcn.00506900
add esp, 8
test eax, eax
je 0x5b174d
mov edx, dword [esp + 0x2c]
push edx
push edi
push edi
call fcn.0053f0f0
add esp, 0xc
test eax, eax
je 0x5b174d
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
push eax
push ecx
call fcn.005054b0
add esp, 8
test eax, eax
je 0x5b174d
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x44]
push ebp
push edx
push edi
push eax
push 0
call fcn.0054a9d0
add esp, 0x14
test eax, eax
je 0x5b174d
call fcn.005058e0
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x10]
push eax
push ecx
push edx
call fcn.0053f180
add esp, 0xc
test eax, eax
je 0x5b174d
mov eax, dword [esp + 0x10]
push eax
push edi
mov edi, dword [esp + 0x58]
push edi
call fcn.0053f180
add esp, 0xc
test eax, eax
je 0x5b174d
mov ecx, dword [esp + 0x2c]
push ecx
push edi
call fcn.00505e00
add esp, 8
test eax, eax
js 0x5b1587
mov edx, dword [esp + 0x14]
push edx
push 1
push ebp
push 0x40
push edi
call fcn.005adc30
add esp, 0x14
test eax, eax
jg 0x5b15a0
jne 0x5b174d
mov eax, dword [esp + 0x28]
inc eax
mov dword [esp + 0x28], eax
cmp eax, 0x1000
jl 0x5b13c7
jmp 0x5b1230
mov eax, dword [esp + 0x14]
push 1
push 2
push eax
call fcn.005ad7d0
add esp, 0xc
test eax, eax
je 0x5b174d
call fcn.005058e0
mov ebx, dword [esp + 0x2c]
push eax
push edi
push ebx
call fcn.0053f180
add esp, 0xc
test eax, eax
je 0x5b174d
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
push ebp
push ecx
push ebx
push 0
push edx
call fcn.0054a9d0
add esp, 0x14
test eax, eax
je 0x5b174d
push 2
push ebx
call fcn.00506960
add esp, 8
test eax, eax
je 0x5b174d
mov eax, dword [esp + 0x24]
push ebp
push edi
push eax
call fcn.0054acb0
add esp, 0xc
test eax, eax
je 0x5b174d
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x20]
push ecx
push ebp
push edi
push edx
push ebx
push eax
call fcn.0054c610
add esp, 0x18
test eax, eax
je 0x5b174d
nop
mov ecx, dword [esp + 0x20]
push ecx
call fcn.00506110
add esp, 4
test eax, eax
je 0x5b1690
call fcn.005058e0
push eax
push ebx
push ebx
call fcn.0053f0f0
add esp, 0xc
test eax, eax
je 0x5b174d
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x20]
inc dword [esp + 0x34]
push edx
push ebp
push edi
push eax
push ebx
push ecx
call fcn.0054c610
add esp, 0x18
test eax, eax
jne 0x5b1640
jmp 0x5b174d
mov edx, dword [esp + 0x14]
push 1
push 3
push edx
call fcn.005ad7d0
add esp, 0xc
test eax, eax
je 0x5b174d
mov ebx, dword [esp + 0x5c]
mov eax, dword [ebx + 8]
push eax
mov dword [esp + 0x3c], 1
lea esp, [esp]
call fcn.00506430
mov ecx, dword [ebx + 0xc]
push ecx
call fcn.00506430
mov edx, dword [ebx + 0x10]
push edx
call fcn.00506430
push edi
call fcn.00506cb0
mov dword [ebx + 8], eax
mov eax, dword [esp + 0x2c]
push eax
call fcn.00506cb0
mov ecx, dword [esp + 0x34]
push ecx
mov dword [ebx + 0xc], eax
call fcn.00506cb0
add esp, 0x18
cmp dword [ebx + 8], 0
mov dword [ebx + 0x10], eax
je 0x5b170d
cmp dword [ebx + 0xc], 0
je 0x5b170d
test eax, eax
jne 0x5b1717
mov dword [esp + 0x38], 0
jmp 0x5b174d
mov eax, dword [esp + 0x48]
test eax, eax
je 0x5b1725
mov edx, dword [esp + 0x28]
mov dword [eax], edx
mov eax, dword [esp + 0x54]
test eax, eax
je 0x5b1733
mov ecx, dword [esp + 0x34]
mov dword [eax], ecx
mov eax, dword [esp + 0x4c]
test eax, eax
je 0x5b174d
push esi
lea edx, [esp + 0xa4]
push edx
push eax
call sub.MSVCR100.dll_memcpy
add esp, 0xc
pop ebx
push ebp
call fcn.0053d370
push ebp
call fcn.0053d2e0
mov eax, dword [esp + 0x28]
push eax
call fcn.0054ac60
mov ecx, dword [esp + 0xe8]
mov eax, dword [esp + 0x40]
add esp, 0xc
pop edi
pop esi
pop ebp
xor ecx, esp
call fcn.005c5718
add esp, 0xd4
ret