Function at 0x4109e6
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x4bb707
call fcn.004bb310
sub esp, 0xb8
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x40], ecx
mov dword [ebp - 0x18], 8
xor esi, esi
inc esi
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x1c], 0xfffffffe
mov dword [ebp - 0x1c], 0xd9b95031
mov dword [ebp - 0x1c], 0xa35ca420
mov dword [ebp - 0x1c], 0x7e2f9d44
mov dword [ebp - 0x28], 0x1571
xor ebx, ebx
cmp dword [ebp - 0x28], 0x185a
jle 0x410a9a
mov edi, ebx
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x24], 0x79c6
mov esi, ebx
mov edi, ebx
mov ebx, dword [ebp - 0x18]
mov eax, esi
mov ecx, edi
sar eax, cl
xor eax, ebx
cdq
push edx
push eax
mov ecx, 0xa9fdf8
call fcn.00419f57
inc edi
cmp edi, 0x60aa
jl 0x410a50
inc esi
cmp esi, 0x70ce
push 0
pop ebx
jl 0x410a4b
dec dword [ebp - 0x18]
dec dword [ebp - 0x24]
jne 0x410a49
mov edi, dword [ebp - 0x14]
inc edi
mov dword [ebp - 0x14], edi
cmp edi, 0x5389
jl 0x410a3f
call dword [0xaa34f8]
xor esi, esi
inc esi
mov dword [ebp - 0x1c], 0xffffffff
mov dword [ebp - 4], ebx
cmp dword [ebp - 0x28], 0x138f
jge 0x410abc
mov edx, 0xa7fd20
mov ecx, 0xa9fdf8
call fcn.0041c484
or dword [ebp - 4], 0xffffffff
jmp 0x410ae5
mov dword [ebp - 0x1c], 0xffffffff
mov dword [ebp - 0x3c], 0xfaab39e
mov dword [ebp - 0x14], ebx
push 3
pop edi
jmp 0x410b0c
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x84], 0xffff
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x410afb
mov dword [ebp - 0x18], 0xffffffe8
cmp dword [ebp - 0x18], 0xa
jge 0x410c57
mov dword [ebp - 0x24], 0xffffffff
mov dword [ebp - 0x14], ebx
jmp 0x410b3f
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0xc4], 0xc9e53e58
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 4
jl 0x410b2e
mov dword [ebp - 0x24], ebx
cmp dword [ebp - 0x24], 2
jg 0x410c4f
mov dword [ebp - 0x1c], 0xfffffffd
mov dword [ebp - 0x1c], 0xfd5d7051
mov dword [ebp - 0x14], ebx
jmp 0x410b73
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x78], 2
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x410b65
dec dword [ebp - 0x70]
mov dword [ebp - 0x14], 0x2608
cmp dword [ebp - 0x14], 0x273a
jle 0x410bf0
mov edi, ebx
mov eax, ebx
mov dword [ebp - 0x28], ebx
and eax, edi
cdq
push edx
push eax
lea ecx, [ebp - 0x9c]
call fcn.004019bd
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x410bac
mov eax, dword [eax]
push eax
call fcn.004a5ec7
pop ecx
push ebx
push esi
lea ecx, [ebp - 0x9c]
call fcn.0041a653
mov eax, dword [ebp - 0x28]
inc eax
mov dword [ebp - 0x28], eax
cmp eax, 0x30b0
jl 0x410b92
inc edi
cmp edi, 0x5a9b
jl 0x410b8d
push 0x4dc
push 0x11c1
push ebx
push 0x25b1
call dword [0xaa34fc]
push 3
pop edi
mov byte [ebp - 0x2e], bl
cmp byte [ebp - 0x2e], 0
je 0x410c00
push ebx
call dword [0xaa332c]
mov dword [ebp - 4], 2
cmp dword [ebp - 0x14], 0x2422
jge 0x410c1b
push 0xa7fd8c
call fcn.004a5ec7
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x410c47
inc dword [ebp - 0x24]
jmp 0x410b48
inc dword [ebp - 0x18]
jmp 0x410b18
dec dword [ebp - 0x3c]
mov eax, dword [ebp - 0x40]
cmp dword [eax], 0
je 0x410efa
push dword [eax]
push ebx
push dword [eax + 4]
call fcn.00423d5f
mov eax, dword [ebp - 0x40]
push dword [eax + 4]
call fcn.004a5fce
add esp, 0x10
mov dword [ebp - 0x2c], 0xeb06
push edi
lea ecx, [ebp - 0x60]
call fcn.0041a182
mov dword [ebp - 0x34], 0xedbda7fe
push esi
lea ecx, [ebp - 0x54]
call fcn.0041a182
mov dword [ebp - 0x44], 0xff5452fa
mov dword [ebp - 0x20], ebx
jmp 0x410cbb
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x60]
mov dword [eax + ecx*4], 0x4e1265ab
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], edi
jl 0x410cab
mov dword [ebp - 0x20], ebx
jmp 0x410cd5
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x54]
mov dword [eax + ecx*4], 0xffff
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], esi
jl 0x410cc5
mov eax, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x60]
mov dword [edx + 8], eax
test eax, eax
jne 0x410d2c
mov eax, dword [ebp - 0x54]
mov dword [eax], 0xfffffffa
mov eax, dword [ebp - 0x2c]
neg eax
jne 0x410d00
mov eax, dword [ebp - 0x54]
cmp dword [eax], ebx
mov edi, ebx
je 0x410d02
mov edi, esi
mov eax, dword [ebp - 0x2c]
xor ecx, ecx
cmp edi, eax
sete cl
xor eax, eax
test ecx, ecx
setg al
neg eax
jne 0x410d1a
mov eax, dword [ebp - 0x2c]
mov eax, dword [edx + 8]
mov dword [edx + 8], eax
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x34], 0x11
cmp dword [ebp - 0x34], 0xffffffeb
jg 0x410e3f
mov byte [ebp - 0x2d], bl
mov dword [ebp - 0x1c], 0xace
cmp dword [ebp - 0x1c], 0xc62
jle 0x410de2
mov dword [ebp - 0x18], ebx
mov edi, ebx
mov dword [ebp - 0x38], ebx
mov eax, edi
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x14], 0x1f7
mov edi, dword [ebp - 0x18]
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x28], 0x14c6
and eax, edi
cdq
push edx
push eax
lea ecx, [ebp - 0xb4]
call fcn.004019bd
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x410d95
mov eax, dword [eax]
push eax
call fcn.004a5ec7
pop ecx
push ebx
push esi
lea ecx, [ebp - 0xb4]
call fcn.0041a653
mov eax, dword [ebp - 0x3c]
dec eax
mov dword [ebp - 0x3c], eax
dec dword [ebp - 0x28]
jne 0x410d7b
mov eax, dword [ebp - 0x24]
dec eax
mov dword [ebp - 0x24], eax
dec dword [ebp - 0x14]
jne 0x410d71
mov edi, dword [ebp - 0x38]
inc edi
mov dword [ebp - 0x38], edi
cmp edi, 0x5b53
jl 0x410d62
mov eax, dword [ebp - 0x18]
inc eax
mov dword [ebp - 0x18], eax
cmp eax, 0x1044
jl 0x410d5d
cmp byte [ebp - 0x2d], 0
je 0x410df3
push ebx
push ebx
push ebx
push ebx
push ebx
call dword [0xaa3344]
mov dword [ebp - 4], 4
cmp dword [ebp - 0x1c], 0x96a
jge 0x410e0e
push 0xa7fdd4
call fcn.004a5ec7
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x410e37
dec dword [ebp - 0x34]
jmp 0x410d39
lea ecx, [ebp - 0x54]
call fcn.0041a254
lea ecx, [ebp - 0x60]
call fcn.0041a254
mov edi, dword [ebp - 0x40]
mov dword [edi + 4], ebx
mov dword [ebp - 0x1c], 0x9881
mov dword [ebp - 0x18], 0xffffffff
mov dword [ebp - 0x38], esi
push esi
lea ecx, [ebp - 0x6c]
call fcn.0041a182
mov dword [ebp - 0x14], ebx
jmp 0x410e84
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x6c]
mov dword [eax + ecx*4], 0x6dc99220
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], esi
jl 0x410e74
mov dword [ebp - 0x14], ebx
jmp 0x410e9c
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x48], 0xfffffff9
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], esi
jl 0x410e8e
cmp dword [ebp - 0x18], ebx
mov eax, ebx
je 0x410eaa
mov eax, esi
add eax, eax
je 0x410eb3
cmp dword [ebp - 0x18], ebx
jne 0x410eb5
mov esi, ebx
mov edx, dword [ebp - 0x38]
imul edx, esi
neg edx
sbb edx, edx
neg edx
mov eax, dword [ebp - 0x1c]
xor ecx, ecx
cmp eax, edx
setg cl
xor eax, eax
cmp ecx, 0xffffffff
setge al
sub eax, dword [ebp - 0x18]
cmp eax, 0x3ffe0
jle 0x410ee0
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x38]
xor edx, edx
mov eax, dword [ebp - 0x6c]
cmp ecx, dword [eax]
setge dl
mov dword [ebp - 0x48], edx
lea ecx, [ebp - 0x6c]
call fcn.0041a254
mov dword [edi], ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret