Function at 0x10063d70
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0xbc
push ebx
push ebp
mov ebp, dword [esp + 0xd0]
xor ebx, ebx
shr ebp, 3
cmp ebp, 0x14
mov dword [esp + 0x20], ebx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x34], 2
je 0x10063dae
cmp ebp, 0x1c
je 0x10063dae
cmp ebp, 0x20
je 0x10063dae
pop ebp
xor eax, eax
pop ebx
add esp, 0xbc
ret
cmp dword [esp + 0xd4], ebx
jne 0x10063dc3
call fcn.1002d960
mov dword [esp + 0xd4], eax
mov eax, dword [esp + 0xcc]
cmp eax, 0x200
jae 0x10063dd6
mov eax, 0x200
mov ecx, dword [esp + 0xdc]
add eax, 0x3f
shr eax, 6
shl eax, 6
push esi
cmp ecx, ebx
push edi
mov dword [esp + 0xd4], eax
je 0x10063dfb
cmp ecx, ebp
jae 0x10063dfb
xor esi, esi
jmp 0x10063e02
mov esi, dword [esp + 0xe0]
cmp ecx, ebp
jbe 0x10063e0f
mov ecx, ebp
mov dword [esp + 0xe4], ecx
cmp esi, ebx
je 0x10063e28
mov eax, ecx
lea edi, [esp + 0x8c]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.100199b0
cmp eax, ebx
mov dword [esp + 0x10], eax
je 0x100643fc
call fcn.1001eb70
test eax, eax
mov dword [esp + 0x2c], eax
je 0x100643d8
mov esi, dword [esp + 0x10]
push esi
call fcn.10019a50
push esi
call fcn.10019af0
push esi
mov dword [esp + 0x4c], eax
call fcn.10019af0
push esi
mov dword [esp + 0x48], eax
call fcn.10019af0
push esi
mov dword [esp + 0x30], eax
call fcn.10019af0
push esi
mov dword [esp + 0x30], eax
call fcn.10019af0
push esi
mov dword [esp + 0x64], eax
call fcn.10019af0
push esi
mov dword [esp + 0x64], eax
call fcn.10019af0
push esi
mov dword [esp + 0x48], eax
call fcn.10019af0
mov ecx, dword [esp + 0xf8]
add esp, 0x24
mov esi, eax
lea eax, [ecx - 1]
mov dword [esp + 0x14], esi
push eax
call fcn.1001db80
push eax
push esi
call fcn.100226c0
add esp, 0xc
test eax, eax
je 0x100643d8
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0xf0]
mov eax, ecx
inc ecx
push eax
push 0
push edx
mov dword [esp + 0x40], ecx
call fcn.10020df0
add esp, 0xc
test eax, eax
je 0x100643d8
mov eax, dword [esp + 0xe4]
test eax, eax
jne 0x10063f14
lea eax, [esp + 0x8c]
push ebp
push eax
call fcn.10032aa0
add esp, 8
mov ebx, 1
jmp 0x10063f1d
xor ebx, ebx
mov dword [esp + 0xe4], ebx
mov ecx, ebp
lea esi, [esp + 0x8c]
mov edx, ecx
lea edi, [esp + 0x6c]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, ebp
lea esi, [esp + 0x8c]
mov eax, ecx
lea edi, [esp + 0xac]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
lea eax, [ebp - 1]
and ecx, 3
test eax, eax
rep movsb byte es:[edi], byte [esi]
jl 0x10063f6c
mov cl, byte [esp + eax + 0x6c]
inc cl
mov byte [esp + eax + 0x6c], cl
jne 0x10063f6c
dec eax
jns 0x10063f5d
mov esi, dword [esp + 0xdc]
push 0
push esi
lea ecx, [esp + 0x54]
push 0
push ecx
lea edx, [esp + 0x9c]
push ebp
push edx
call fcn.10029810
push 0
push esi
lea eax, [esp + 0xcc]
push 0
push eax
lea ecx, [esp + 0x94]
push ebp
push ecx
call fcn.10029810
add esp, 0x30
xor eax, eax
test ebp, ebp
jle 0x10063fc5
mov dl, byte [esp + eax + 0xac]
mov cl, byte [esp + eax + 0x4c]
xor cl, dl
mov byte [esp + eax + 0x4c], cl
inc eax
cmp eax, ebp
jl 0x10063faf
mov al, byte [esp + 0x4c]
mov edi, dword [esp + 0x18]
or al, 0x80
push edi
mov byte [esp + 0x50], al
mov dl, byte [esp + ebp + 0x4f]
lea eax, [esp + 0x50]
or dl, 1
push ebp
push eax
mov byte [esp + ebp + 0x57], dl
call fcn.1001dfc0
add esp, 0xc
test eax, eax
je 0x100643d8
mov esi, dword [esp + 0xf0]
mov ecx, dword [esp + 0x10]
push esi
push ebx
push ecx
push 0x32
push edi
call fcn.100210a0
add esp, 0x14
test eax, eax
jg 0x1006401d
jne 0x100643d8
jmp 0x10063ecb
push 0
push 2
push esi
call fcn.10020df0
add esp, 0xc
test eax, eax
je 0x100643d8
push 0
push 3
push esi
call fcn.10020df0
add esp, 0xc
test eax, eax
je 0x100643d8
mov edx, dword [esp + 0xd4]
xor ecx, ecx
dec edx
mov eax, 0xcccccccd
mul edx
mov ebx, dword [esp + 0x40]
mov edi, edx
shr edi, 7
mov dword [esp + 0x20], ecx
mov dword [esp + 0x30], edi
jmp 0x1006406f
mov edi, dword [esp + 0x30]
test ecx, ecx
je 0x10064087
push ecx
push 0
push esi
call fcn.10020df0
add esp, 0xc
test eax, eax
je 0x100643d8
mov eax, dword [esp + 0x1c]
push 0
push eax
call fcn.1001df80
add esp, 8
xor esi, esi
test edi, edi
jl 0x1006412c
lea edi, [ebp - 1]
mov eax, edi
test eax, eax
jl 0x100640b8
mov cl, byte [esp + eax + 0x6c]
inc cl
mov byte [esp + eax + 0x6c], cl
jne 0x100640b8
dec eax
jns 0x100640a9
mov ecx, dword [esp + 0xdc]
push 0
push ecx
lea edx, [esp + 0x54]
push 0
push edx
lea eax, [esp + 0x7c]
push ebp
push eax
call fcn.10029810
push ebx
lea ecx, [esp + 0x68]
push ebp
push ecx
call fcn.1001dfc0
add esp, 0x24
test eax, eax
je 0x100643d8
lea edx, [ebp*8]
imul edx, esi
push edx
push ebx
push ebx
call fcn.100226c0
add esp, 0xc
test eax, eax
je 0x100643d8
mov eax, dword [esp + 0x1c]
push ebx
push eax
push eax
call fcn.10014a40
add esp, 0xc
test eax, eax
je 0x100643d8
mov eax, dword [esp + 0x30]
inc esi
cmp esi, eax
jle 0x100640a3
mov eax, dword [esp + 0xd4]
mov esi, dword [esp + 0x1c]
dec eax
push eax
push esi
call fcn.1001e2d0
add esp, 8
test eax, eax
je 0x100643d8
push esi
mov esi, dword [esp + 0x4c]
push esi
call fcn.1001dea0
add esp, 8
test eax, eax
je 0x100643d8
mov ecx, dword [esp + 0x14]
push ecx
push esi
push esi
call fcn.10014a40
add esp, 0xc
test eax, eax
je 0x100643d8
mov edx, dword [esp + 0x18]
push edx
push ebx
call fcn.10022560
add esp, 8
test eax, eax
je 0x100643d8
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 0x44]
push eax
push ebx
push esi
push edi
push 0
call fcn.10019dc0
add esp, 0x14
test eax, eax
je 0x100643d8
call fcn.1001db80
push eax
push edi
push ebx
call fcn.10014d00
add esp, 0xc
test eax, eax
je 0x100643d8
mov edi, dword [esp + 0x24]
push ebx
push esi
push edi
call fcn.10014d00
add esp, 0xc
test eax, eax
je 0x100643d8
mov ecx, dword [esp + 0x14]
push ecx
push edi
call fcn.1001e160
mov esi, dword [esp + 0xf8]
add esp, 8
test eax, eax
jl 0x10064210
mov edx, dword [esp + 0x10]
push esi
push 1
push edx
push 0x32
push edi
call fcn.100210a0
add esp, 0x14
test eax, eax
jg 0x1006422a
jne 0x100643d8
mov ecx, dword [esp + 0x20]
inc ecx
cmp ecx, 0x1000
mov dword [esp + 0x20], ecx
jl 0x1006406b
jmp 0x10063ecb
push 1
push 2
push esi
call fcn.10020df0
add esp, 0xc
test eax, eax
je 0x100643d8
call fcn.1001db80
mov esi, dword [esp + 0x14]
push eax
push edi
push esi
call fcn.10014d00
add esp, 0xc
test eax, eax
je 0x100643d8
mov ebp, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
push ebp
push eax
push esi
push 0
push ebx
call fcn.10019dc0
add esp, 0x14
test eax, eax
je 0x100643d8
push 2
push esi
call fcn.1001df80
add esp, 8
test eax, eax
je 0x100643d8
mov esi, dword [esp + 0x2c]
push ebp
push edi
push esi
call fcn.1001ec30
add esp, 0xc
test eax, eax
je 0x100643d8
mov edx, dword [esp + 0x14]
mov ecx, ebp
mov ebp, dword [esp + 0x38]
push esi
push ecx
push edi
push ebx
push edx
push ebp
call fcn.1001aac0
add esp, 0x18
test eax, eax
je 0x100643d8
mov edi, dword [esp + 0x3c]
cmp dword [ebp + 4], 1
jne 0x1006431d
mov eax, dword [ebp]
cmp dword [eax], 1
jne 0x1006431d
mov eax, dword [ebp + 0xc]
test eax, eax
jne 0x1006431d
call fcn.1001db80
push eax
mov eax, dword [esp + 0x18]
push eax
push eax
call fcn.10014a40
add esp, 0xc
test eax, eax
je 0x100643d8
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x14]
push esi
push ecx
push edx
push ebx
push eax
push ebp
inc edi
call fcn.1001aac0
add esp, 0x18
test eax, eax
je 0x100643d8
jmp 0x100642c7
mov ecx, dword [esp + 0xf0]
push 1
push 3
push ecx
call fcn.10020df0
add esp, 0xc
test eax, eax
je 0x100643d8
mov esi, dword [esp + 0xd0]
mov dword [esp + 0x28], 1
mov eax, dword [esi + 0xc]
test eax, eax
je 0x10064358
push eax
call fcn.1001dc80
add esp, 4
mov eax, dword [esi + 0x10]
test eax, eax
je 0x10064368
push eax
call fcn.1001dc80
add esp, 4
mov eax, dword [esi + 0x14]
test eax, eax
je 0x10064378
push eax
call fcn.1001dc80
add esp, 4
mov edx, dword [esp + 0x24]
push edx
call fcn.1001de60
mov dword [esi + 0xc], eax
mov eax, dword [esp + 0x1c]
push eax
call fcn.1001de60
push ebp
mov dword [esi + 0x10], eax
call fcn.1001de60
mov ecx, dword [esi + 0xc]
add esp, 0xc
test ecx, ecx
mov dword [esi + 0x14], eax
je 0x100643b0
mov ecx, dword [esi + 0x10]
test ecx, ecx
je 0x100643b0
test eax, eax
jne 0x100643ba
mov dword [esp + 0x28], 0
jmp 0x100643d8
mov eax, dword [esp + 0xe8]
test eax, eax
je 0x100643cb
mov ecx, dword [esp + 0x20]
mov dword [eax], ecx
mov eax, dword [esp + 0xec]
test eax, eax
je 0x100643d8
mov dword [eax], edi
mov esi, dword [esp + 0x10]
push esi
call fcn.10019aa0
push esi
call fcn.10019a20
mov eax, dword [esp + 0x34]
add esp, 8
test eax, eax
je 0x100643fc
push eax
call fcn.1001ebf0
add esp, 4
mov eax, dword [esp + 0x28]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xbc
ret