Function at 0x100643d0
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x10
mov al, byte [0x1018c7c0]
push ebx
push ebp
push esi
mov cl, al
push edi
dec al
push ecx
mov byte [0x1018c7c0], al
call fcn.10064700
mov cl, byte [0x1018c7c2]
add esp, 4
add al, cl
mov word [esp + 0x10], 8
mov byte [0x1018c7c1], al
mov eax, 0xfffb
mov word [esp + 0x12], ax
mov word [esp + 0x1c], ax
mov al, byte [0x101977bc]
mov word [esp + 0x14], 6
test al, 1
mov word [esp + 0x16], 2
mov word [esp + 0x18], 0xfff7
mov word [esp + 0x1a], 0xfff9
jne 0x1006449b
mov bl, al
push 0x10
or bl, 1
mov byte [0x101977bc], bl
call fcn.1013c2df
add esp, 4
mov dword [0x101977c0], eax
xor edi, edi
mov si, word [esp + edi + 0x10]
push 0x6a
mov eax, esi
mov ecx, 0x101977c0
and eax, 0xffff
push eax
call fcn.1002ea10
mov ecx, dword [0x101977c0]
sub esi, eax
add esi, 0x6a
mov word [edi + ecx], si
add edi, 2
cmp edi, 0xe
jb 0x10064452
mov edx, dword [0x101977c0]
push 0x10064740
mov word [edx + 0xe], 0
call fcn.1013c36b
add esp, 4
mov esi, dword [0x101977c0]
push esi
call fcn.1013c2c2
mov ebp, dword [esp + 0x28]
mov edi, eax
add esp, 4
mov ebx, dword [ebp + 8]
cmp ebx, edi
mov ecx, ebx
jb 0x100644bb
mov ecx, edi
mov eax, dword [ebp + 4]
push ecx
push esi
push eax
call fcn.100145d0
add esp, 0xc
test eax, eax
jne 0x100644e7
cmp ebx, edi
jb 0x100644e7
cmp ebx, edi
setne al
test eax, eax
jne 0x100644e7
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x10
ret
mov eax, 0x17
mov word [esp + 0x10], 0x42
mov word [esp + 0x12], ax
mov word [esp + 0x1a], ax
mov word [esp + 0x1e], ax
mov al, byte [0x101977c4]
test al, 1
mov word [esp + 0x14], 1
mov word [esp + 0x16], 0xd
mov word [esp + 0x18], 0x1b
mov word [esp + 0x1c], 6
jne 0x10064594
mov bl, al
push 0x12
or bl, 1
mov byte [0x101977c4], bl
call fcn.1013c2df
add esp, 4
mov dword [0x101977c8], eax
mov edi, 0x30
xor esi, esi
mov bx, word [esp + esi + 0x10]
push edi
mov eax, ebx
mov ecx, 0x101977c8
and eax, 0xffff
push eax
call fcn.1004a650
mov ecx, dword [0x101977c8]
xor eax, ebx
xor eax, edi
xor edi, edi
mov word [esi + ecx], ax
mov eax, dword [0x101977c8]
mov di, word [esi + eax]
add esi, 2
cmp esi, 0x10
jb 0x10064548
push 0x10064750
mov word [eax + 0x10], 0
call fcn.1013c36b
add esp, 4
mov edi, dword [0x101977c8]
push edi
call fcn.1013c2c2
mov ebx, dword [ebp + 8]
add esp, 4
cmp ebx, eax
mov esi, ebx
jb 0x100645ae
mov esi, eax
mov ecx, dword [ebp + 4]
mov edx, edi
test esi, esi
jbe 0x100645da
mov di, word [ecx]
cmp di, word [edx]
jne 0x100645ca
add ecx, 2
add edx, 2
dec esi
jne 0x100645b7
jmp 0x100645da
mov cx, word [ecx]
cmp cx, word [edx]
sbb ecx, ecx
and ecx, 0xfffffffe
inc ecx
test ecx, ecx
jne 0x100645f6
cmp ebx, eax
jb 0x100645f6
xor ecx, ecx
cmp ebx, eax
setne cl
test ecx, ecx
jne 0x100645f6
pop edi
pop esi
pop ebp
mov eax, 2
pop ebx
add esp, 0x10
ret
mov al, byte [0x101977cc]
mov word [esp + 0x10], 0x44
test al, 1
mov word [esp + 0x12], 6
mov word [esp + 0x14], 7
mov word [esp + 0x16], 0x10
jne 0x10064689
mov bl, al
push 0xa
or bl, 1
mov byte [0x101977cc], bl
call fcn.1013c2df
add esp, 4
mov dword [0x101977d0], eax
mov edi, 0x30
xor esi, esi
mov bx, word [esp + esi + 0x10]
push edi
mov edx, ebx
mov ecx, 0x101977d0
and edx, 0xffff
push edx
call fcn.1004a650
mov ecx, dword [0x101977d0]
xor eax, ebx
xor eax, edi
xor edi, edi
mov word [esi + ecx], ax
mov eax, dword [0x101977d0]
mov di, word [esi + eax]
add esi, 2
cmp esi, 8
jb 0x1006463c
push 0x10064760
mov word [eax + 8], 0
call fcn.1013c36b
add esp, 4
mov edi, dword [0x101977d0]
push edi
call fcn.1013c2c2
mov ebx, dword [ebp + 8]
add esp, 4
cmp ebx, eax
mov esi, ebx
jb 0x100646a3
mov esi, eax
mov ecx, dword [ebp + 4]
mov edx, edi
test esi, esi
jbe 0x100646cf
mov di, word [ecx]
cmp di, word [edx]
jne 0x100646bf
add ecx, 2
add edx, 2
dec esi
jne 0x100646ac
jmp 0x100646cf
mov cx, word [ecx]
cmp cx, word [edx]
sbb ecx, ecx
and ecx, 0xfffffffe
inc ecx
test ecx, ecx
jne 0x100646eb
cmp ebx, eax
jb 0x100646eb
xor ecx, ecx
cmp ebx, eax
setne cl
test ecx, ecx
jne 0x100646eb
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x10
ret
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x10
ret