Function at 0x1003fde0
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x26c4
call fcn.102244a0
push ebx
push ebp
push esi
push edi
lea ecx, [esp + 0x1024]
call fcn.1002c170
mov ebx, dword [esp + 0x26dc]
mov ebp, dword [esp + 0x26d8]
push 0
push 0x8002
mov dword [ebx], 0
mov ecx, dword [0x107ab964]
push ebp
mov eax, dword [ecx]
call dword [eax + 4]
mov esi, eax
cmp esi, 0xffffffff
je 0x100400ae
mov ecx, dword [0x107ab964]
push esi
mov edx, dword [ecx]
call dword [edx + 0x20]
test eax, eax
mov dword [esp + 0x14], eax
jg 0x1003fe59
mov ecx, dword [0x107ab964]
push esi
mov eax, dword [ecx]
call dword [eax + 0x18]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x26c4
ret
mov ecx, dword [0x107ab964]
push esi
push ecx
call fcn.1000fca0
mov edi, eax
add esp, 8
test edi, edi
jle 0x100400a2
mov ecx, dword [0x107ab964]
lea eax, [esp + 0x20]
push eax
push esi
push ecx
call fcn.10025680
add esp, 0xc
test eax, eax
je 0x100400a2
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x14]
cmp ecx, eax
jl 0x100400a2
add eax, 0x400
cmp ecx, eax
jge 0x1003fed6
mov ecx, dword [0x107ab964]
push esi
mov edx, dword [ecx]
call dword [edx + 0x18]
mov eax, dword [0x107ab964]
push ebx
push ebp
push eax
call fcn.1002bac0
add esp, 0xc
neg eax
pop edi
pop esi
sbb eax, eax
pop ebp
neg eax
pop ebx
add esp, 0x26c4
ret
mov ecx, dword [esp + 0x26e0]
mov edx, dword [0x107ab964]
push ecx
push edx
lea ecx, [esp + 0x102c]
call fcn.1002c1c0
test eax, eax
jne 0x1003ff0e
mov ecx, dword [0x107ab964]
push esi
mov eax, dword [ecx]
call dword [eax + 0x18]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x26c4
ret
lea ecx, [esp + 0x18]
lea edx, [esp + 0x13]
push ecx
push edx
push edi
push esi
lea eax, [esp + 0x1034]
push ebp
push eax
mov byte [esp + 0x2b], 0
mov dword [esp + 0x30], 0
call fcn.100dc420
add esp, 0x18
lea ecx, [esp + 0x1024]
mov edi, eax
call fcn.1002c5f0
test edi, edi
je 0x1003fef5
mov al, byte [esp + 0x13]
test al, al
je 0x1003fef5
mov eax, dword [esp + 0x18]
test eax, eax
jle 0x1003fef5
mov ebx, dword [esp + 0x14]
cmp ebx, eax
jle 0x1003fef5
cmp eax, 0xa000
jae 0x1003fef5
mov edx, ebx
sub edx, eax
test edx, edx
mov dword [esp + 0x14], edx
jle 0x100400a2
cmp ebx, edx
jle 0x100400a2
mov ecx, 0x1000
mov edi, edx
mov dword [esp + 0x1c], ecx
xor ebp, ebp
cmp ecx, 0x1000
jne 0x1004004e
cmp ebx, edi
jle 0x1004004e
mov eax, dword [0x107ab964]
lea ecx, [esp + 0x1c]
push 1
lea edx, [esp + 0x28]
push ecx
push edx
push 0x1000
push 0x1000
push edi
push ebx
push esi
push eax
call fcn.100253e0
add esp, 0x24
test eax, eax
je 0x100400a2
mov ecx, dword [esp + 0x1c]
test ecx, ecx
jl 0x100400a2
xor eax, eax
test ecx, ecx
jle 0x1003fff0
mov dl, byte [esp + 0x13]
xor byte [esp + eax + 0x24], dl
inc eax
cmp eax, ecx
jl 0x1003ffe7
test ebp, ebp
jne 0x10040001
cmp word [esp + 0x24], 0x5a4d
jne 0x1003fef5
mov ecx, dword [0x107ab964]
push 0
push edi
push esi
mov edx, dword [ecx]
call dword [edx + 8]
mov ecx, dword [0x107ab964]
cmp eax, edi
jne 0x100400a8
mov edx, dword [esp + 0x1c]
mov eax, dword [ecx]
push edx
lea edx, [esp + 0x28]
push edx
push esi
call dword [eax + 0x14]
mov ecx, dword [esp + 0x1c]
cmp eax, ecx
jne 0x1003fef5
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
add edi, ecx
inc ebp
cmp ebp, 0xa
jl 0x1003ff8e
push 0
push eax
mov eax, dword [0x107ab964]
push edx
push esi
push eax
call fcn.1002b820
add esp, 0x14
test eax, eax
je 0x100400a2
mov eax, dword [esp + 0x18]
push 1
sub ebx, eax
mov eax, dword [0x107ab964]
push 0x13a3
push ebx
push esi
push eax
call fcn.10013800
mov ecx, dword [0x107ab964]
add esp, 0x14
test eax, eax
je 0x100400a8
mov eax, dword [ecx]
push esi
call dword [eax + 0x18]
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x26c4
ret
mov ecx, dword [0x107ab964]
mov edx, dword [ecx]
push esi
call dword [edx + 0x18]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x26c4
ret