Function at 0x41e070
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x158
mov edi, edx
mov ebx, ecx
call fcn.00404970
mov dword [esp + 0x24], eax
push eax
call fcn.004045d0
add esp, 4
mov dword [esp + 0x20], eax
mov eax, dword [edi + 0x38]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x2c], edi
mov edi, dword [edi + 0x3c]
lea esi, [esp + 0x30]
push 0x120
push 0
push esi
call fcn.0040c600
add esp, 0xc
mov dword [esp + 0x28], ebx
mov ecx, ebx
push 0
push 0
push 0x120
push esi
push edi
push dword [esp + 0x30]
call fcn.0043d400
test eax, eax
js 0x41e4f7
mov dword [esp + 0xc], 0x76616c62
mov byte [esp + 0x10], 0xd0
mov dword [esp + 0x11], 0
mov byte [esp + 0x15], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 9
ja 0x41e164
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx edx, byte [esp + ecx + 0xc]
mov ecx, eax
xor ecx, 0xfec6412d
and eax, 0xfec6412d
lea ecx, [ecx + eax*2]
lea eax, [ecx + edx]
and ecx, edx
mov edx, eax
not edx
and edx, ecx
mov esi, ecx
not esi
and eax, esi
sub eax, edx
mov edx, eax
not edx
and edx, ecx
and eax, esi
sub eax, edx
mov dword [esp + 8], eax
mov eax, dword [esp + 8]
add al, 0x1f
mov ecx, dword [esp]
mov byte [esp + ecx + 0xc], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xa
jb 0x41e110
lea edx, [esp + 0x38]
lea eax, [esp + 0xc]
mov esi, dword [esp + 0x28]
mov ecx, esi
mov edi, dword [esp + 0x20]
push edi
push eax
call fcn.0041e5a0
add esp, 8
mov ebx, eax
mov dword [esp + 0xc], 0x9a82f892
mov word [esp + 0x10], 0x1589
mov dword [esp + 0x12], 0
mov byte [esp + 0x16], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xa
ja 0x41e1e9
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0xc]
mov edx, eax
xor edx, 0xc9be6ac6
and eax, 0xc9be6ac6
lea eax, [edx + eax*2]
xor eax, ecx
mov dword [esp + 8], eax
mov eax, dword [esp + 8]
add al, 0x22
mov ecx, dword [esp]
mov byte [esp + ecx + 0xc], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xb
jb 0x41e1b0
lea edx, [esp + 0x118]
mov ecx, esi
push edi
lea eax, [esp + 0x10]
push eax
call fcn.0041e5a0
add esp, 8
mov byte [esp + 7], al
mov dword [esp + 0xc], 0xb7b1beb8
mov dword [esp + 0x10], 0xae43be4b
mov byte [esp + 0x14], 0x58
mov dword [esp + 0x15], 0
mov byte [esp + 0x19], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xd
ja 0x41e279
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0xc]
mov edx, eax
xor edx, 0xe1a53ab8
and eax, 0xe1a53ab8
lea eax, [edx + eax*2]
xor eax, ecx
mov dword [esp + 8], eax
mov eax, dword [esp + 8]
add al, 0x68
mov ecx, dword [esp]
mov byte [esp + ecx + 0xc], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xe
jb 0x41e240
lea edx, [esp + 0x50]
mov ecx, esi
push edi
lea eax, [esp + 0x10]
push eax
call fcn.0041e5a0
add esp, 8
mov byte [esp + 0x1c], al
mov dword [esp + 0xc], 0x373a2838
mov byte [esp + 0x10], 0x8c
mov dword [esp + 0x11], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 8
ja 0x41e2fe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0xc]
lea edx, [eax + ecx]
add edx, 0xb63be722
add eax, 0xb63be722
not ecx
or eax, ecx
sub ecx, eax
lea eax, [edx + ecx*2]
mov dword [esp + 8], eax
mov eax, dword [esp + 8]
add al, 0x56
mov ecx, dword [esp]
mov byte [esp + ecx + 0xc], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 9
jb 0x41e2c0
and bl, byte [esp + 7]
lea edx, [esp + 0x68]
mov ecx, esi
push edi
lea eax, [esp + 0x10]
push eax
call fcn.0041e5a0
add esp, 8
mov byte [esp + 7], al
fild qword [esp + 0x130]
mov dword [esp + 0xc], 0x2a323925
mov dword [esp + 0x10], 0x58352036
mov dword [esp + 0x14], 0x8b293d3d
mov word [esp + 0x18], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xd
ja 0x41e395
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0xc]
mov edx, eax
xor edx, 0x57964ce0
and eax, 0xd7964ce0
lea eax, [edx + eax*2]
xor eax, ecx
mov dword [esp + 8], eax
mov eax, dword [esp + 8]
mov ecx, eax
not ecx
and ecx, 0x60
and eax, 0x9f
sub eax, ecx
mov ecx, dword [esp]
mov byte [esp + ecx + 0xc], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xe
jb 0x41e350
and bl, byte [esp + 0x1c]
sub esp, 0x10
fstp qword [esp + 8]
lea eax, [esp + 0x1c]
mov dword [esp + 4], eax
mov dword [esp], edi
call fcn.00405cd0
add esp, 0x10
mov esi, eax
movzx eax, byte [esp + 0x88]
mov dword [esp + 0xc], 0xe0f5e2e9
mov dword [esp + 0x10], 0xdd23ced1
mov word [esp + 0x14], 0xa9d5
mov dword [esp + 0x16], 0
mov word [esp + 0x1a], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 0xf
ja 0x41e43b
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0xc]
mov edi, ecx
xor edi, 0x3327e11c
and ecx, 0x3327e11c
lea ecx, [edi + ecx*2]
xor ecx, edx
mov dword [esp + 8], ecx
mov ecx, dword [esp + 8]
add cl, 0x74
mov edx, dword [esp]
mov byte [esp + edx + 0xc], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 0x10
jb 0x41e400
and bl, byte [esp + 7]
push eax
lea eax, [esp + 0x10]
push eax
push dword [esp + 0x28]
call fcn.00405d60
add esp, 0xc
mov edi, eax
movzx eax, byte [esp + 0x88]
mov dword [esp + 0xc], 0xc3cecdd8
mov dword [esp + 0x10], 0xcbc8cadb
mov dword [esp + 0x14], 0x79c1
mov byte [esp + 0x18], 0
or edi, esi
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 0xc
ja 0x41e4dc
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0xc]
mov esi, ecx
xor esi, 0x5c9b3794
and ecx, 0xdc9b3794
lea ecx, [esi + ecx*2]
lea esi, [ecx + edx]
and ecx, edx
mov edx, esi
not edx
and edx, ecx
add edx, ecx
not ecx
and ecx, esi
sub ecx, edx
mov dword [esp + 8], ecx
mov ecx, dword [esp + 8]
add cl, 0x1c
mov edx, dword [esp]
mov byte [esp + edx + 0xc], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 0xd
jb 0x41e490
push eax
lea eax, [esp + 0x10]
push eax
push dword [esp + 0x28]
call fcn.00405d60
add esp, 0xc
or edi, eax
sete al
and bl, al
jmp 0x41e4f9
xor ebx, ebx
mov ecx, dword [esp + 0x2c]
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
mov ecx, eax
or ecx, edx
mov edi, dword [esp + 0x28]
je 0x41e537
mov ecx, edi
push 0
push 0
push 0x40
lea esi, [esp + 0x3c]
push esi
push edx
push eax
call fcn.0043d400
test eax, eax
js 0x41e537
lea edx, [esp + 0x30]
mov ecx, edi
push dword [ebp + 8]
call fcn.0041e070
add esp, 4
or bl, al
mov ecx, dword [esp + 0x2c]
mov eax, dword [ecx + 8]
mov edx, dword [ecx + 0xc]
mov ecx, eax
or ecx, edx
je 0x41e572
mov ecx, edi
push 0
push 0
push 0x40
lea esi, [esp + 0x3c]
push esi
push edx
push eax
call fcn.0043d400
test eax, eax
js 0x41e572
lea edx, [esp + 0x30]
mov ecx, edi
push dword [ebp + 8]
call fcn.0041e070
add esp, 4
or bl, al
test bl, bl
je 0x41e587
push dword [esp + 0x24]
push dword [ebp + 8]
call fcn.004056a0
add esp, 8
jmp 0x41e593
push dword [esp + 0x24]
call fcn.00404840
add esp, 4
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret