Function at 0x10041c30
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x8bcc
call fcn.102244a0
mov ecx, dword [0x107ab964]
push ebx
push ebp
push esi
mov esi, dword [esp + 0x8bdc]
mov eax, dword [ecx]
push edi
push esi
call dword [eax + 0x20]
mov ebx, eax
xor ebp, ebp
cmp ebx, ebp
jle 0x100420b9
mov ecx, dword [0x107ab964]
push 0xa
push 0x1000
push ebx
push esi
push ecx
lea ecx, [esp + 0x50]
call fcn.100243a0
test eax, eax
je 0x100420b9
mov eax, dword [0x107ab964]
lea edx, [esp + 0x3c]
push ebp
push edx
push ebx
push esi
push eax
lea ecx, [esp + 0x1100]
call fcn.10001ab0
test eax, eax
jne 0x10041cb2
lea ecx, [esp + 0x3c]
call fcn.10024430
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x8bcc
ret
mov ecx, 0x18
xor eax, eax
lea edi, [esp + 0x7c]
rep stosd dword es:[edi], eax
lea ecx, [esp + 0x7c]
push ecx
lea ecx, [esp + 0x10f0]
call fcn.100023e0
test eax, eax
je 0x100420a4
lea ecx, [esp + 0x10ec]
call fcn.10004bd0
cmp eax, ebp
mov dword [esp + 0x38], eax
jle 0x100420a4
cmp ebx, eax
jle 0x100420a4
mov ecx, 0xa
xor eax, eax
lea edi, [esp + 0x54]
lea edx, [esp + 0x54]
rep stosd dword es:[edi], eax
push edx
push 5
lea ecx, [esp + 0x10f4]
call fcn.10003900
test eax, eax
je 0x100420a4
lea eax, [esp + 0x20]
lea ecx, [esp + 0x28]
push eax
lea edx, [esp + 0x20]
push ecx
lea eax, [esp + 0x20]
push edx
lea ecx, [esp + 0x3c]
push eax
lea edx, [esp + 0x44]
push ecx
lea eax, [esp + 0x1100]
push edx
push eax
mov dword [esp + 0x34], ebp
mov dword [esp + 0x38], ebp
mov dword [esp + 0x30], ebp
mov dword [esp + 0x50], ebp
mov dword [esp + 0x44], ebp
mov dword [esp + 0x48], ebp
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x40], ebp
call fcn.100eefe0
add esp, 0x1c
lea ecx, [esp + 0x3c]
mov esi, eax
call fcn.10024430
lea ecx, [esp + 0x10ec]
call fcn.10001b10
cmp esi, ebp
je 0x100420b9
mov eax, dword [esp + 0x18]
cmp eax, ebp
jbe 0x100420b9
mov edi, dword [esp + 0xb4]
cmp edi, eax
jbe 0x100420b9
mov eax, dword [esp + 0x1c]
cmp eax, ebp
jbe 0x100420b9
cmp edi, eax
jbe 0x100420b9
mov edx, dword [esp + 0x2c]
mov esi, dword [esp + 0x28]
cmp edx, ebp
jb 0x100420b9
ja 0x10041dd6
cmp esi, ebp
jbe 0x100420b9
mov eax, dword [esp + 0x94]
mov ecx, edi
add ecx, eax
mov eax, 0
adc eax, dword [esp + 0x98]
cmp eax, edx
jb 0x100420b9
ja 0x10041dff
cmp ecx, esi
jbe 0x100420b9
mov edx, dword [esp + 0x24]
mov esi, dword [esp + 0x20]
cmp edx, ebp
jb 0x100420b9
ja 0x10041e19
cmp esi, ebp
jbe 0x100420b9
cmp eax, edx
jb 0x100420b9
ja 0x10041e2b
cmp ecx, esi
jbe 0x100420b9
mov eax, dword [esp + 0x34]
cmp eax, ebp
je 0x100420b9
mov ecx, dword [esp + 0x18]
mov ebp, eax
and ebp, 3
sub eax, ebp
add eax, ecx
je 0x100420b9
cmp edi, eax
jbe 0x100420b9
lea ecx, [esp + 0x10]
push 0
lea edx, [esp + 0xf0]
push ecx
mov ecx, dword [0x107ab964]
push edx
push 0x1000
push 0x1000
push eax
mov eax, dword [esp + 0x8bf8]
push ebx
push eax
push ecx
call fcn.100253e0
add esp, 0x24
test eax, eax
je 0x100420b9
cmp dword [esp + 0x10], 0x1000
jne 0x100420b9
mov ecx, dword [esp + 0x30]
xor eax, eax
mov edi, dword [esp + eax + 0xec]
add eax, 4
xor edi, ecx
cmp eax, 0xffc
mov dword [esp + eax + 0xe8], edi
jl 0x10041ea0
mov ecx, 0x1800
xor eax, eax
lea edi, [esp + 0x2bdc]
push eax
rep stosd dword es:[edi], eax
mov eax, 0x1000
lea edx, [esp + 0x2be0]
push 0x100
sub eax, ebp
lea esi, [esp + ebp + 0xf4]
push edx
push eax
push esi
call fcn.10024cd0
add esp, 0x14
cmp eax, 0x10
jle 0x100420b9
mov edx, dword [esp + 0x30]
lea ecx, [esp + 0x14]
push ecx
mov ecx, dword [esp + 0x28]
push edx
mov edx, dword [esp + 0x28]
push ecx
mov ecx, dword [esp + 0x38]
mov edi, dword [esp + 0x8bec]
push edx
mov edx, dword [esp + 0x38]
push ecx
mov ecx, dword [esp + 0x30]
push edx
push ecx
push esi
lea edx, [esp + 0x2bfc]
push eax
push edx
push ebx
push edi
mov dword [esp + 0x44], 0
call fcn.100410c0
add esp, 0x30
test eax, eax
je 0x100420b9
mov eax, dword [esp + 0x14]
cmp eax, 0x100
jle 0x100420b9
cmp eax, 0x300
jg 0x100420b9
lea eax, [ebx - 0x1000]
test eax, eax
jle 0x100420b9
lea ecx, [esp + 0x10]
push 1
lea edx, [esp + 0xf0]
push ecx
push edx
push 0x1000
push 0x1000
push eax
mov eax, dword [0x107ab964]
push ebx
push edi
push eax
call fcn.100253e0
add esp, 0x24
test eax, eax
je 0x100420b9
cmp dword [esp + 0x10], 0x1000
jne 0x100420b9
mov eax, 0xfff
mov cl, byte [esp + eax + 0xec]
test cl, cl
jne 0x10041fd2
dec eax
cmp eax, 4
jge 0x10041fb4
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x8bcc
ret
mov eax, dword [esp + eax + 0xe8]
test eax, eax
jbe 0x100420b9
cmp dword [esp + 0x5c], eax
jbe 0x100420b9
mov ecx, dword [esp + 0x68]
lea esi, [ecx + eax]
test esi, esi
jle 0x100420b9
cmp ecx, esi
ja 0x100420b9
mov edx, dword [esp + 0x64]
add edx, ecx
cmp edx, esi
jb 0x100420b9
mov edx, dword [esp + 0x14]
lea eax, [esp + 0x10]
push 1
lea ecx, [esp + 0xf0]
push eax
mov eax, dword [0x107ab964]
push ecx
push 0x1000
push edx
push esi
push ebx
push edi
push eax
call fcn.100253e0
add esp, 0x24
test eax, eax
je 0x100420b9
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
cmp ecx, eax
jne 0x100420b9
mov edx, dword [esp + 0x38]
push eax
mov eax, dword [0x107ab964]
lea ecx, [esp + 0xf0]
push 0x1000
push ecx
push edx
push edi
push eax
call fcn.10029d90
add esp, 0x18
test eax, eax
je 0x100420b9
sub ebx, esi
mov eax, ebx
cmp eax, 0x30000
jle 0x100420b9
cmp eax, 0xa0000
jg 0x100420b9
mov ecx, dword [0x107ab964]
push eax
push esi
push edi
push ecx
call section..text
add esp, 0x10
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x8bcc
ret
lea ecx, [esp + 0x3c]
call fcn.10024430
lea ecx, [esp + 0x10ec]
call fcn.10001b10
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x8bcc
ret