Function at 0x10095a40
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x1c70
call fcn.102244a0
push ebx
push ebp
push esi
mov esi, dword [esp + 0x1c80]
push edi
mov ecx, 0x18
xor eax, eax
lea edi, [esp + 0x20]
rep stosd dword es:[edi], eax
mov ecx, dword [0x107ab964]
lea eax, [esp + 0x20]
push eax
push esi
push ecx
call fcn.1000fc50
add esp, 0xc
test eax, eax
je 0x100960ad
mov ebx, dword [esp + 0x1c88]
mov ecx, 0x400
xor eax, eax
lea edi, [esp + 0x80]
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x30]
push eax
lea edx, [esp + 0x14]
lea eax, [esp + 0x84]
push edx
mov edx, dword [0x107ab964]
mov ebp, 0x13
push eax
push 0x1000
push ebp
push ecx
push ebx
push esi
push edx
mov dword [esp + 0x40], ebp
call fcn.100253e0
add esp, 0x24
test eax, eax
je 0x100960ad
cmp dword [esp + 0x10], ebp
jne 0x100960ad
mov ecx, 0x300
xor eax, eax
lea edi, [esp + 0x1080]
push eax
rep stosd dword es:[edi], eax
lea eax, [esp + 0x1084]
push 0x20
push eax
lea ecx, [esp + 0x8c]
push ebp
push ecx
call fcn.10024c10
add esp, 0x14
cmp eax, 4
jl 0x100960ad
cmp dword [esp + 0x1090], 0x1c
jne 0x100960ad
mov eax, dword [esp + 0x10a6]
test eax, eax
jne 0x100960ad
cmp byte [esp + 0x10e4], 0x5d
je 0x10095b48
cmp dword [esp + 0x10f0], 0x16d
jne 0x100960ad
cmp dword [esp + 0x1150], 0x118
jne 0x100960ad
mov ecx, dword [esp + 0x1161]
mov eax, 0x8c
cmp ecx, eax
jne 0x100960ad
cmp dword [esp + 0x1176], 0x8d
jne 0x100960ad
cmp dword [esp + 0x11b0], 0xd1
jne 0x100960ad
mov edx, dword [esp + 0x11ce]
mov ecx, dword [esp + 0x116e]
cmp edx, ecx
jne 0x100960ad
cmp dword [esp + 0x1210], 0xf2
jne 0x100960ad
cmp dword [esp + 0x1221], eax
jne 0x100960ad
mov eax, dword [esp + 0x1200]
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + eax + 0x82]
inc eax
cmp eax, ecx
jb 0x100960ad
mov edx, dword [esp + 0x58]
add edx, ecx
cmp eax, edx
ja 0x100960ad
push eax
mov eax, dword [0x107ab964]
push esi
push eax
call fcn.100100a0
add esp, 0xc
mov dword [esp + 0x18], eax
test eax, eax
jle 0x100960ad
cmp eax, ebx
jl 0x10095c16
lea eax, [ebx - 0x1000]
mov dword [esp + 0x18], eax
lea ecx, [esp + 0x10]
push 1
lea edx, [esp + 0x84]
push ecx
push edx
push 0x1000
push 0x1000
push eax
mov eax, dword [0x107ab964]
push ebx
push esi
push eax
call fcn.100253e0
add esp, 0x24
test eax, eax
je 0x100960ad
cmp dword [esp + 0x10], 0x1000
jne 0x100960ad
xor edx, edx
xor eax, eax
mov dword [esp + 0x14], edx
mov ebp, 0xc3
mov ebx, 0x92b58d00
mov edi, 0x8d000000
mov esi, 0x96bd
cmp edx, 2
jge 0x10095ee7
mov ecx, edx
sub ecx, 0
je 0x10095de1
dec ecx
jne 0x10095ed8
cmp dword [esp + eax + 0x80], 0xf5233ff
jne 0x10095ed8
cmp dword [esp + eax + 0x84], 0xa6858931
jne 0x10095ed8
cmp dword [esp + eax + 0x88], 0x89000000
jne 0x10095ed8
cmp dword [esp + eax + 0x8c], 0xaa95
jne 0x10095ed8
cmp dword [esp + eax + 0x90], 0x852b5a00
jne 0x10095ed8
cmp dword [esp + eax + 0x94], 0x9e
jne 0x10095ed8
cmp dword [esp + eax + 0x98], 0xd8f7027d
jne 0x10095ed8
cmp dword [esp + eax + 0x9c], 0xf719f8c1
jne 0x10095ed8
cmp dword [esp + eax + 0xa0], 0x31d033d0
jne 0x10095ed8
cmp dword [esp + eax + 0xa4], 0x8d605a13
jne 0x10095ed8
cmp dword [esp + eax + 0xa8], 0xa6b5
jne 0x10095ed8
cmp dword [esp + eax + 0xac], 0x9ebd8d00
jne 0x10095ed8
cmp dword [esp + eax + 0xb0], 0x6a000000
jne 0x10095ed8
cmp dword [esp + eax + 0xb4], 0xf3fc5908
jne 0x10095ed8
cmp dword [esp + eax + 0xb8], 0x858d61a4
jne 0x10095ed8
cmp dword [esp + eax + 0xbc], 0x9a
jne 0x10095ed8
cmp dword [esp + eax + 0xc0], 0x7db06db
jne 0x10095ed8
cmp dword [esp + eax + 0xc4], 0x18dbc1de
jne 0x10095ed8
cmp dword [esp + eax + 0xc8], 0xb4e21803
jne 0x10095ed8
lea ecx, [eax + 0x4d]
mov edx, 2
mov dword [esp + 0x14], ecx
jmp 0x10095ed8
cmp dword [esp + eax + 0x80], 0xe8
jne 0x10095ed8
cmp dword [esp + eax + 0x84], 0x310f5d00
jne 0x10095ed8
cmp dword [esp + eax + 0x88], 0x9e8589
jne 0x10095ed8
cmp dword [esp + eax + 0x8c], 0x95890000
jne 0x10095ed8
cmp dword [esp + eax + 0x90], 0xa2
jne 0x10095ed8
cmp dword [esp + eax + 0x94], 0xbb8d8b
jne 0x10095ed8
cmp dword [esp + eax + 0x98], 0xc18b0000
jne 0x10095ed8
cmp dword [esp + eax + 0x9c], 0xd08be1f7
jne 0x10095ed8
cmp dword [esp + eax + 0xa0], 0x9531d2f7
jne 0x10095ed8
cmp dword [esp + eax + 0xa4], 0xbf
jne 0x10095ed8
cmp dword [esp + eax + 0xa8], 0x9d8dd2f7
jne 0x10095ed8
cmp dword [esp + eax + 0xac], ebp
jne 0x10095ed8
cmp byte [esp + eax + 0xb0], 0xb9
jne 0x10095ed8
mov cl, byte [esp + eax + 0xb3]
test cl, cl
jne 0x10095ed8
cmp dword [esp + eax + 0xb4], ebx
jne 0x10095ed8
cmp dword [esp + eax + 0xb8], edi
jne 0x10095ed8
cmp dword [esp + eax + 0xbc], esi
jne 0x10095ed8
mov cl, byte [esp + eax + 0xc0]
test cl, cl
jne 0x10095ed8
add eax, 0x40
mov edx, 1
inc eax
cmp eax, 0xfb0
jl 0x10095c72
cmp edx, 2
jne 0x100960ad
cmp eax, 0xfb0
jae 0x100960ad
mov eax, dword [esp + 0x1c98]
test eax, eax
je 0x1009609d
mov eax, dword [esp + 0x1c94]
test eax, eax
je 0x1009609d
mov eax, dword [esp + 0x1c8c]
test eax, eax
je 0x1009609d
mov eax, dword [esp + 0x14]
test eax, eax
je 0x100960ad
mov edx, dword [esp + 0x18]
add eax, edx
test eax, eax
jle 0x100960ad
cmp dword [esp + 0x1c88], eax
jl 0x100960ad
lea ecx, [esp + 0x10]
push 1
lea edx, [esp + 0x84]
push ecx
mov ecx, dword [esp + 0x1c8c]
push edx
mov edx, dword [0x107ab964]
push 0x1000
push 0x1000
push eax
mov eax, dword [esp + 0x1ca0]
push eax
push ecx
push edx
call fcn.100253e0
add esp, 0x24
test eax, eax
je 0x100960ad
mov edi, dword [esp + 0x10]
cmp edi, 0xf00
jl 0x100960ad
mov edx, dword [esp + 0x80]
lea esi, [edi - 4]
xor eax, eax
test esi, esi
jle 0x10095fc8
mov ecx, dword [esp + eax + 0x84]
add eax, 4
not edx
xor edx, ecx
cmp eax, esi
mov dword [esp + eax + 0x80], edx
mov edx, ecx
jl 0x10095fad
lea ecx, [edi - 0xb]
xor edx, edx
xor eax, eax
test ecx, ecx
jle 0x10096022
mov ebp, 0xb58d
mov ebx, 0x6a00000b
mov esi, 0xa4f3fc59
cmp word [esp + eax + 0x80], bp
jne 0x10095ffe
cmp dword [esp + eax + 0x83], ebx
jne 0x10095ffe
cmp dword [esp + eax + 0x88], esi
je 0x10096005
inc eax
cmp eax, ecx
jl 0x10095fe2
jmp 0x10096022
mov ebx, dword [esp + 0x14]
xor edx, edx
mov dl, byte [esp + eax + 0x87]
mov dword [esp + 0x1c], edx
mov edx, dword [esp + eax + 0x82]
sub edx, ebx
add edx, 5
cmp eax, ecx
jge 0x100960ad
cmp edx, 0xa00
jl 0x100960ad
mov ebp, dword [esp + 0x1c]
sub edi, ebp
cmp edi, edx
jle 0x100960ad
mov ebx, dword [esp + 0x1c90]
cmp dword [ebx], ebp
jle 0x100960ad
mov edi, dword [esp + 0x1c8c]
mov ecx, ebp
mov eax, ecx
lea esi, [esp + edx + 0x80]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [esp + 0x1c88]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x18]
sub eax, ecx
cmp eax, 0x1000
jl 0x100960ad
cmp eax, dword [esp + 0x1c88]
jg 0x100960ad
cmp eax, 0x2000
jg 0x100960ad
mov edx, dword [esp + 0x1c98]
mov dword [edx], eax
mov eax, dword [esp + 0x1c94]
mov dword [eax], ecx
mov dword [ebx], ebp
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x1c70
ret
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x1c70
ret