Function at 0x442115
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0xe6d0
call fcn.004490f0
mov eax, dword [0x41547c]
mov ecx, dword [0x415480]
mov edx, dword [0x415484]
push ebx
push ebp
push esi
mov esi, dword [esp + 0xe6e0]
mov dword [esp + 0x20], eax
push edi
mov edi, dword [0x4110f8]
lea eax, [esp + 0xa8]
push 0x40
push eax
push 0x3e9
push esi
mov dword [esp + 0x38], ecx
mov dword [esp + 0x3c], edx
call edi
lea ecx, [esp + 0x290]
push 0x100
push ecx
push 0x3ed
push esi
mov ebp, eax
call edi
lea edx, [esp + 0x190]
push 0x100
push edx
push 0x3ea
push esi
call edi
push 0x418fb8
push 0x3ec
push esi
mov bl, 1
call dword [0x4110ec]
cmp ebp, 0x29
je 0x442030
xor bl, bl
mov cl, byte [esp + 0xad]
mov al, 0x2d
cmp cl, al
jne 0x44206a
cmp byte [esp + 0xb3], al
jne 0x44206a
cmp byte [esp + 0xb9], al
jne 0x44206a
cmp byte [esp + 0xbf], al
jne 0x44206a
cmp byte [esp + 0xc5], al
jne 0x44206a
cmp byte [esp + 0xcb], al
je 0x44206c
xor bl, bl
cmp ebp, 4
jb 0x442098
xor edx, edx
test ebp, ebp
jbe 0x442098
mov cl, byte [esp + edx + 0xa8]
xor eax, eax
cmp cl, byte [esp + eax + 0x24]
je 0x44208c
inc eax
cmp eax, 0xb
jl 0x442080
cmp eax, 0xa
jle 0x442093
xor bl, bl
inc edx
cmp edx, ebp
jb 0x442077
test bl, bl
jne 0x4420c5
push 0x415464
push 0x3ec
push esi
call dword [0x4110ec]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xe6d0
ret
mov edi, dword [0x4110f8]
mov esi, dword [esp + 0xe6e4]
lea eax, [esp + 0x150]
push 0x40
push eax
push 0x3e8
push esi
call edi
lea ecx, [esp + 0x190]
push 0x5f5e0ff
lea edx, [esp + 0x294]
push ecx
lea eax, [esp + 0xb0]
push edx
lea ecx, [esp + 0x15c]
push eax
push ecx
push 1
push 4
push 0x27
lea edx, [esp + 0x8558]
push 0x41527c
push edx
call dword [0x4110fc]
push 0x10
push 0x4000
call fcn.004465c0
push 0
call fcn.004463f0
mov dword [esp + 0x68], eax
mov ecx, 0x186a
xor eax, eax
lea edi, [esp + 0x23c4]
add esp, 0x34
rep stosd dword es:[edi], eax
call fcn.0044907a
cdq
mov ecx, 7
xor esi, esi
idiv ecx
mov ebx, edx
inc ebx
mov ebp, ebx
and ebp, 0xffff
jle 0x44217a
call fcn.0044907a
and eax, 0x800000ff
jns 0x44216e
dec eax
or eax, 0xffffff00
inc eax
mov byte [esp + esi + 0x2392], al
inc esi
cmp esi, ebp
jl 0x44215b
xor edx, edx
lea eax, [esp + 0xf8]
mov dl, bh
push eax
mov byte [esp + 0x2394], bl
mov byte [esp + 0x2395], dl
call fcn.00442620
mov ebx, dword [0x411044]
add esp, 4
lea ecx, [esp + 0xa8]
push ecx
call ebx
push eax
lea edx, [esp + 0xac]
lea eax, [esp + 0xfc]
push edx
push eax
call fcn.004430c0
lea ecx, [esp + 0x30]
lea edx, [esp + 0x104]
push ecx
push edx
call fcn.00443180
lea eax, [esp + 0x10c]
push eax
call fcn.00442620
lea ecx, [esp + 0x23aa]
push ebp
lea edx, [esp + 0x114]
push ecx
push edx
call fcn.004430c0
lea eax, [esp + 0x5c]
lea ecx, [esp + 0x11c]
push eax
push ecx
call fcn.00443180
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x50]
mov eax, dword [esp + 0x54]
mov dword [esp + 0x7c], ecx
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x74], edx
mov edx, dword [esp + 0x5c]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0x88], ecx
mov dword [esp + 0x80], edx
mov edx, dword [esp + 0x6c]
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x70]
lea ecx, [esp + 0x124]
mov dword [esp + 0x8c], edx
push ecx
mov dword [esp + 0x94], eax
call fcn.00442620
lea edx, [esp + 0x78]
push 0x20
lea eax, [esp + 0x12c]
push edx
push eax
call fcn.004430c0
lea ecx, [esp + 0x124]
lea edx, [esp + 0x134]
push ecx
push edx
call fcn.00443180
mov ecx, 0x10
xor eax, eax
lea edi, [esp + 0xac]
add esp, 0x44
rep stosd dword es:[edi], eax
xor esi, esi
lea edi, [esp + 0x68]
xor eax, eax
mov al, byte [esp + esi + 0xe8]
push eax
push 0x415274
push edi
call fcn.00449098
add esp, 0xc
inc esi
add edi, 2
cmp esi, 0x10
jl 0x4422a7
xor ecx, ecx
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x10], ecx
mov edx, dword [esp + 0x68]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], ecx
lea eax, [esp + 0x10]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x74]
mov byte [esp + 0x20], cl
mov ecx, dword [esp + 0x70]
push 0x10
mov dword [esp + 0x1c], ecx
lea ecx, [esp + 0x853c]
push eax
push ecx
mov dword [esp + 0x28], edx
call ebx
lea edx, [esp + 0x8540]
push eax
push edx
call fcn.00442480
add esp, 0x10
mov esi, eax
lea eax, [esp + 0x8538]
push eax
call ebx
shl eax, 1
mov ecx, eax
mov byte [esp + ebp + 0x2392], al
shr ecx, 8
mov byte [esp + ebp + 0x2393], cl
lea edi, [esp + ebp + 0x2396]
shr ecx, 8
mov byte [esp + ebp + 0x2394], cl
lea ebx, [eax + ebp]
shr ecx, 8
mov byte [esp + ebp + 0x2395], cl
mov ecx, eax
mov edx, ecx
lea eax, [esp + ebx + 0x2396]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov edx, dword [esp + 0x6c]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x68]
xor esi, esi
mov dword [eax], ecx
mov ecx, dword [esp + 0x70]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x74]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
lea eax, [ebx + 0x16]
shr eax, 1
je 0x4423b3
lea ecx, [esp + 0x2390]
mov edx, eax
mov ax, word [ecx]
add ecx, 2
and eax, 0xffff
add esi, eax
dec edx
jne 0x4423a3
test bl, 1
je 0x4423c3
xor eax, eax
mov al, byte [esp + ebx + 0x23a5]
add esi, eax
push esi
lea ecx, [esp + 0x6c]
push 0x415270
push ecx
call dword [0x4110fc]
mov edx, esi
lea ecx, [ebx + 0x1a]
shr edx, 0x10
shl esi, 0x10
add esp, 0xc
or edx, esi
xor eax, eax
mov dword [esp + ebx + 0x23a6], edx
test ecx, ecx
jbe 0x442407
mov bl, byte [esp + eax + 0x2390]
xor bl, 0xfd
mov byte [esp + eax + 0x2390], bl
inc eax
cmp eax, ecx
jb 0x4423f1
mov esi, dword [esp + 0x34]
lea eax, [esp + 0x2390]
push esi
push eax
push ecx
call fcn.00447870
lea ecx, [esp + 0x39c]
push ecx
push esi
call fcn.00442500
push esi
call fcn.00446ca0
add esp, 0x18
lea edx, [esp + 0x390]
push edx
call dword [0x411044]
and eax, 0x80000003
jns 0x44244b
dec eax
or eax, 0xfffffffc
inc eax
jne 0x4420b8
mov ecx, dword [esp + 0xe6e4]
lea eax, [esp + 0x390]
push eax
push 0x3ec
push ecx
call dword [0x4110ec]
call fcn.00446cc0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xe6d0
ret