Function at 0x1003d780
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x1054
call fcn.102244a0
mov ecx, dword [0x107ab964]
push ebx
push ebp
mov ebp, dword [esp + 0x1060]
push esi
lea eax, [esp + 0x34]
push edi
push eax
push ebp
push ecx
call fcn.10025680
add esp, 0xc
test eax, eax
je 0x1003dad5
mov ecx, dword [0x107ab964]
push ebp
mov edx, dword [ecx]
call dword [edx + 0x20]
mov edi, eax
xor ebx, ebx
cmp edi, ebx
mov dword [esp + 0x30], edi
jle 0x1003dad5
lea eax, [esp + 0x28]
lea ecx, [esp + 0x2c]
push eax
lea edx, [esp + 0x24]
push ecx
lea eax, [esp + 0x20]
push edx
lea ecx, [esp + 0x20]
push eax
lea edx, [esp + 0x34]
push ecx
lea eax, [esp + 0x27]
push edx
lea ecx, [esp + 0x2a]
push eax
push ecx
push edi
push ebp
mov dword [esp + 0x54], ebx
mov byte [esp + 0x3a], bl
mov byte [esp + 0x3b], bl
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x48], ebx
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x50], ebx
mov dword [esp + 0x40], ebx
call fcn.100c75a0
add esp, 0x28
test eax, eax
je 0x1003dad5
cmp dword [esp + 0x14], 5
jne 0x1003dad5
mov eax, dword [esp + 0x24]
cmp eax, ebx
jle 0x1003dad5
cmp edi, eax
jle 0x1003dad5
mov eax, dword [esp + 0x18]
cmp eax, ebx
jle 0x1003dad5
cmp edi, eax
jle 0x1003dad5
mov eax, dword [esp + 0x20]
cmp eax, 0x2000
jl 0x1003dad5
cmp eax, 0x3000
jge 0x1003dad5
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x38]
cmp ecx, eax
jg 0x1003dad5
cmp edi, eax
jle 0x1003dad5
mov eax, dword [esp + 0x28]
cmp eax, ebx
jl 0x1003dad5
cmp edi, eax
jle 0x1003dad5
mov edx, dword [0x107ab964]
push ebp
push edx
call fcn.100100f0
mov esi, eax
add esp, 8
cmp esi, ebx
jle 0x1003dad5
cmp edi, esi
jle 0x1003dad5
mov edx, dword [esp + 0x14]
lea eax, [esp + 0x1c]
push 1
lea ecx, [esp + 0x68]
push eax
mov eax, dword [esp + 0x2c]
push ecx
mov ecx, dword [0x107ab964]
push 0x1000
push edx
push eax
push edi
push ebp
push ecx
call fcn.100253e0
add esp, 0x24
test eax, eax
je 0x1003dad5
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
cmp eax, ecx
jne 0x1003dad5
xor eax, eax
cmp ecx, ebx
jle 0x1003d924
mov dl, byte [esp + 0x12]
mov bl, dl
xor bl, byte [esp + eax + 0x64]
inc eax
cmp eax, ecx
not bl
mov byte [esp + eax + 0x63], bl
jl 0x1003d911
xor ebx, ebx
mov ecx, dword [0x107ab964]
push ebx
push esi
push ebp
mov edx, dword [ecx]
call dword [edx + 8]
cmp eax, esi
jne 0x1003dad5
mov edx, dword [esp + 0x14]
mov ecx, dword [0x107ab964]
push edx
lea edx, [esp + 0x68]
mov eax, dword [ecx]
push edx
push ebp
call dword [eax + 0x14]
cmp eax, dword [esp + 0x14]
jne 0x1003dad5
mov eax, dword [esp + 0x18]
mov edi, 0x1000
mov esi, eax
mov dword [esp + 0x34], ebx
jmp 0x1003d96f
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
lea ecx, [eax + edx]
cmp esi, ecx
jge 0x1003da49
lea ebx, [esi + 0x1000]
cmp ebx, ecx
jle 0x1003d98e
sub eax, esi
add eax, edx
mov edi, eax
test esi, esi
jle 0x1003dad5
mov eax, dword [esp + 0x30]
cmp eax, esi
jle 0x1003dad5
lea ecx, [esp + 0x1c]
push 1
lea edx, [esp + 0x68]
push ecx
push edx
push 0x1000
push edi
push esi
push eax
mov eax, dword [0x107ab964]
push ebp
push eax
call fcn.100253e0
add esp, 0x24
test eax, eax
je 0x1003dad5
mov ecx, dword [esp + 0x1c]
cmp ecx, edi
jne 0x1003dad5
xor eax, eax
test ecx, ecx
jle 0x1003d9f4
mov dl, byte [esp + 0x13]
mov bl, dl
xor bl, byte [esp + eax + 0x64]
inc eax
cmp eax, ecx
not bl
mov byte [esp + eax + 0x63], bl
jl 0x1003d9e3
mov ecx, dword [0x107ab964]
push 0
push esi
push ebp
mov edx, dword [ecx]
call dword [edx + 8]
cmp eax, esi
jne 0x1003dad5
mov edx, dword [esp + 0x1c]
mov ecx, dword [0x107ab964]
push edx
lea edx, [esp + 0x68]
mov eax, dword [ecx]
push edx
push ebp
call dword [eax + 0x14]
mov ecx, dword [esp + 0x1c]
cmp eax, ecx
jne 0x1003dad5
mov eax, dword [esp + 0x34]
add esi, ecx
inc eax
cmp eax, 3
mov dword [esp + 0x34], eax
jl 0x1003d96b
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x28]
push ecx
push edx
mov edx, dword [0x107ab964]
push eax
push ebp
push edx
call fcn.1002b820
add esp, 0x14
test eax, eax
je 0x1003dad5
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x2c]
mov eax, edx
sub eax, ecx
cmp eax, 0x12000
jl 0x1003dad5
cmp eax, 0x16000
jg 0x1003dad5
mov eax, dword [0x107ab964]
push edx
push ecx
push ebp
push eax
call fcn.100014d0
mov edx, dword [0x107ab964]
mov ecx, 0xa
xor eax, eax
lea edi, [esp + 0x4c]
rep stosd dword es:[edi], eax
lea ecx, [esp + 0x4c]
push ecx
push 0x102310b4
push ebp
push edx
call fcn.1000fde0
add esp, 0x20
cmp eax, 1
jne 0x1003dac5
push ebp
call fcn.1003d640
add esp, 4
test eax, eax
je 0x1003dad5
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x1054
ret
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x1054
ret