Function at 0x4144f0
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x1c
mov ecx, dword [esp + 0x20]
push ebx
push esi
xor esi, esi
xor eax, eax
cmp ecx, esi
push edi
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], esi
mov dword [esp + 0x18], esi
mov dword [esp + 0x1c], esi
mov dword [esp + 0xc], esi
jne 0x41451b
mov eax, 0xe101
mov ebx, dword [esp + 0x30]
cmp ebx, esi
jne 0x414528
mov eax, 0xe115
cmp dword [esp + 0x48], esi
jne 0x414533
mov eax, 0xe11c
cmp dword [esp + 0x44], esi
jne 0x41453e
mov eax, 0xe11d
cmp dword [esp + 0x4c], esi
jne 0x414550
pop edi
pop esi
mov eax, 0xe121
pop ebx
add esp, 0x1c
ret
cmp eax, esi
jne 0x4148d2
mov edi, dword [esp + 0x54]
push ebp
push edi
push ecx
call fcn.0040ff50
mov ebp, eax
push edi
push ebx
mov dword [esp + 0x40], ebp
call fcn.0040ff50
add esp, 0x10
mov ebx, eax
cmp ebp, esi
mov dword [esp + 0x34], ebx
je 0x4148d9
cmp ebx, esi
je 0x4148d9
cmp dword [ebp], 0x2001
je 0x41459d
mov esi, 0xe103
jmp 0x4148b3
cmp dword [ebx], 0x2003
je 0x4145af
mov esi, 0xe116
jmp 0x4148b3
push edi
push ebp
call fcn.00419eb0
mov ebx, eax
mov eax, dword [esp + 0x3c]
neg ebx
sbb ebx, ebx
push edi
push eax
inc ebx
call fcn.00419e20
add esp, 0x10
neg eax
sbb eax, eax
inc eax
test ebx, eax
jne 0x4145de
mov esi, 0xf003
jmp 0x414839
mov edx, dword [ebp + 8]
test edx, edx
mov dword [esp + 0x24], edx
jne 0x4145f3
mov esi, 0xe103
jmp 0x414839
cmp dword [edx], 0xd000
je 0x414605
mov esi, 0xe103
jmp 0x414839
mov ecx, dword [edx + 0x14]
mov eax, dword [ecx + 8]
mov ebx, dword [ecx + 4]
mov ecx, dword [ebp + 4]
add eax, 7
shr eax, 3
and ecx, 6
mov dword [esp + 0x58], eax
shl ebx, 2
lea eax, [ecx - 2]
cmp eax, 4
ja case.0x414629.3
jmp dword [eax*4 + 0x4148e0]
mov edx, dword [edx + 0x14]
mov eax, dword [edx + 8]
add eax, 7
shr eax, 3
inc eax
mov dword [esp + 0x14], eax
jmp case.0x414629.3
mov eax, dword [edx + 0x14]
mov ecx, dword [eax + 8]
add ecx, 7
shr ecx, 3
lea edx, [ecx + ecx + 1]
mov dword [esp + 0x14], edx
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x14]
mov ebp, dword [esp + 0x54]
lea eax, [ecx + eax + 0x14]
test ebp, ebp
mov dword [esp + 0x28], eax
jne 0x41467a
mov edx, dword [esp + 0x50]
mov dword [edx], eax
jmp 0x414833
mov ecx, dword [esp + 0x50]
cmp dword [ecx], eax
jae 0x41468c
mov esi, 0xe123
jmp 0x414835
mov ecx, dword [esp + 0x30]
lea edx, [esp + 0x1c]
push edi
lea eax, [esp + 0x1c]
push edx
push eax
push 0
push 0
push 0
push 0
push ecx
call fcn.00419f00
mov esi, eax
add esp, 0x20
test esi, esi
jne 0x414835
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
push edi
push ebp
mov ecx, dword [eax + 8]
push edx
mov edx, dword [esp + 0x3c]
push ecx
push edx
call fcn.00419cf0
mov esi, eax
add esp, 0x14
test esi, esi
jne 0x414835
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0x14]
push edi
add ebp, edx
lea esi, [ebx + eax]
push esi
call fcn.0040ff80
add esp, 8
mov dword [esp + 0x20], eax
test eax, eax
jne 0x414705
mov esi, 0xf001
jmp 0x414835
push edi
push esi
push 0
push eax
call fcn.00410020
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x44]
shr ebx, 2
mov edx, dword [ecx + 8]
push edi
lea ebx, [eax + ebx*4]
push eax
mov eax, dword [esp + 0x30]
push edx
mov ecx, dword [eax + 8]
mov eax, dword [esp + 0x40]
push ecx
push eax
call dword [eax + 0x44]
mov esi, eax
add esp, 0x24
cmp esi, 0xff00
jne 0x41474a
mov esi, 0xf502
jmp 0x414835
cmp esi, 0xf001
je 0x414835
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x58]
mov edx, dword [esp + 0x20]
push ebx
mov ecx, dword [eax + 0x14]
push esi
push edx
mov edx, dword [ecx + 4]
push edx
push 1
call fcn.00416f00
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x4c]
push edi
add eax, 0x14
push ebp
push eax
push ecx
push edx
push ebx
push esi
call fcn.0041a700
mov esi, eax
add esp, 0x30
test esi, esi
jne 0x414835
mov ebx, dword [esp + 0x48]
test ebx, ebx
jbe 0x4147b6
mov ecx, dword [esp + 0x4c]
mov eax, ebp
sub ecx, ebp
mov esi, ebx
mov dl, byte [ecx + eax]
xor byte [eax], dl
inc eax
dec esi
jne 0x4147ad
mov ecx, dword [esp + 0x30]
lea eax, [esp + 0x10]
push edi
push eax
mov edx, dword [ecx + 8]
add ebx, ebp
mov eax, dword [edx + 0x10]
push eax
push ebx
push 0x14
call fcn.0041a4a0
mov esi, eax
add esp, 0x14
test esi, esi
jne 0x414835
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x10]
push edi
push ebp
push ecx
push edx
call fcn.0041a580
mov esi, eax
add esp, 0x10
test esi, esi
jne 0x414835
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x10]
push edi
push eax
push ecx
push edx
call fcn.0041a580
mov esi, eax
add esp, 0x10
test esi, esi
jne 0x414835
push edi
push ebx
lea eax, [esp + 0x18]
push 0x14
push eax
call fcn.0041a630
mov esi, eax
add esp, 0x10
test esi, esi
jne 0x414835
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x28]
mov dword [edx], ecx
xor esi, esi
mov ebp, dword [esp + 0x30]
mov eax, dword [esp + 0x34]
push edi
push eax
call fcn.00419d80
mov eax, dword [esp + 0x20]
add esp, 8
test eax, eax
je 0x414860
push edi
lea ecx, [esp + 0x1c]
push 0
push ecx
push ebp
call fcn.0041a2e0
add esp, 0x10
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x414879
lea edx, [esp + 0x1c]
push edi
push edx
push 0
push ebp
call fcn.0041a2e0
add esp, 0x10
push edi
push ebp
call fcn.00419dd0
mov eax, dword [esp + 0x28]
add esp, 8
test eax, eax
je 0x414895
push edi
push eax
call fcn.0040ffb0
add esp, 8
mov eax, dword [esp + 0x10]
test eax, eax
je 0x4148af
push edi
push 0
lea eax, [esp + 0x18]
push 0x14
push eax
call fcn.0041a630
add esp, 0x10
mov ebx, dword [esp + 0x34]
test ebp, ebp
je 0x4148c1
push edi
push ebp
call fcn.0040ff50
add esp, 8
test ebx, ebx
pop ebp
je 0x4148d0
push edi
push ebx
call fcn.0040ff50
add esp, 8
mov eax, esi
pop edi
pop esi
pop ebx
add esp, 0x1c
ret
mov esi, 0xf003
jmp 0x4148b3