Function at 0x415ec0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x44
mov eax, dword [0x447834]
mov dl, byte [esp + 0x64]
xor eax, esp
mov dword [esp + 0x40], eax
mov dword [esp + 4], ecx
mov dword [esp + 0x10], ecx
movzx ecx, dl
mov eax, dword [esp + 0x10]
add eax, 0x10
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
mov dword [esp + 0x18], eax
mov eax, 0x7fffffff
sub eax, dword [esp + 0x18]
mov dword [esp + 8], ecx
mov dword [esp + 0x1c], eax
mov eax, 0xebdfaefa
nop dword [eax]
cmp eax, 0xebdfaef9
jle 0x415f50
cmp eax, 0x38bb8af1
je 0x416316
cmp eax, 0x35e52f0d
je 0x416142
cmp eax, 0xebdfaefa
jne 0x415f10
mov eax, dword [esp + 0x1c]
mov ecx, 0xc063324c
cmp eax, dword [esp + 0x58]
mov eax, 0xad4aa24e
cmovb eax, ecx
cmp eax, 0xebdfaef9
jg 0x415f17
cmp eax, 0xa487e8ee
je 0x416103
cmp eax, 0xad4aa24e
jne 0x416306
mov ebx, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x30]
mov dword [esp], eax
mov eax, dword [eax + 0x14]
add ebx, dword [esp + 0x58]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 4]
mov edx, ebx
mov esi, ebx
not edx
and esi, 0xab2048e
mov eax, dword [eax + 0x14]
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x34]
mov ecx, edx
and ecx, 0xf54dfb71
or esi, ecx
mov ecx, ebx
xor esi, 0xf54dfb7e
xor ecx, 0xf
or esi, edx
and edx, 0xf
and ecx, ebx
mov ebp, edx
mov edi, esi
not edi
and ebp, ecx
xor ecx, edx
mov edx, esi
and esi, 0x770b7a32
and edi, 0x88f485cd
or ecx, ebp
or edi, esi
mov esi, ecx
and ecx, 0x88f485cd
not esi
or edx, esi
and esi, 0x770b7a32
or ecx, esi
mov esi, edx
xor ecx, edi
not esi
mov edi, edx
mov ebp, ecx
and edi, 0x6d871763
and esi, 0x9278e89c
and ecx, 0x9278e89c
not ebp
or esi, edi
or edx, ebp
and ebp, 0x6d871763
or ecx, ebp
not edx
xor ecx, esi
mov esi, 0xb7745f77
or edx, ecx
mov dword [esp + 0x38], edx
mov edx, eax
mov ecx, dword [esp + 0x38]
shr edx, 1
mov dword [esp + 0x30], ecx
cmp esi, 0xdc1be86c
jg 0x4160c0
jmp 0x416058
mov esi, 0xbf0ef74d
mov ebp, 0x7fffffff
nop word cs:[eax + eax]
nop
cmp esi, 0xdc1be86c
jg 0x4160c0
cmp esi, 0x95c54b0d
je 0x416091
cmp esi, 0xb7745f77
je 0x416075
cmp esi, 0xbf0ef74d
jne 0x416050
jmp 0x416276
cmp dword [esp + 0x38], 0
mov esi, 0x95c54b0d
mov edi, 0xdc1be86d
cmovs esi, edi
cmp esi, 0xdc1be86c
jle 0x416058
jmp 0x4160c0
mov dword [esp + 0x3c], edx
mov esi, 0x7fffffff
mov edi, 0x18dd9667
sub esi, dword [esp + 0x3c]
cmp esi, eax
mov esi, 0xb743c06
cmovb esi, edi
cmp esi, 0xdc1be86c
jle 0x416058
nop word cs:[eax + eax]
nop
cmp esi, 0xdc1be86d
je 0x41603a
cmp esi, 0xb743c06
je 0x4160e5
cmp esi, 0x18dd9667
jne 0x416050
jmp 0x41603a
mov ebp, dword [esp + 0x3c]
mov esi, 0xbf0ef74d
add ebp, eax
cmp ecx, ebp
cmovae ebp, ecx
cmp esi, 0xdc1be86c
jle 0x416058
jmp 0x4160c0
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0x2c]
push edi
push esi
push ebx
call fcn.0041ced0
add esp, 0xc
mov ecx, dword [esp + 0x60]
lea eax, [ebx + edi]
mov ebp, ecx
push ecx
push dword [esp + 0xc]
push eax
call fcn.0041d450
add esp, 0xc
add edi, ebp
mov byte [ebx + edi], 0
mov eax, dword [esp + 0xc]
mov dword [esi], eax
jmp 0x4162f1
mov eax, dword [esp + 0x10]
mov dword [esp], eax
mov ebx, dword [eax]
mov esi, dword [esp + 0x18]
mov ebp, dword [esp + 0x2c]
push esi
push ebx
push ebp
call fcn.0041ced0
add esp, 0xc
mov edi, dword [esp + 0x60]
lea eax, [ebp + esi]
push edi
push dword [esp + 0xc]
push eax
call fcn.0041d450
add esp, 0xc
add esi, edi
mov byte [ebp + esi], 0
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov ecx, 0xc6da1ab6
inc eax
mov dword [esp + 0x38], eax
nop dword [eax]
cmp ecx, 0x900172a3
je 0x4161cb
cmp ecx, 0xb4fb5a6a
je 0x4162de
cmp ecx, 0xc6da1ab6
jne 0x416190
mov ecx, dword [esp + 0x38]
mov edx, 0x900172a3
cmp ecx, 0xfff
mov ecx, 0xb4fb5a6a
cmova ecx, edx
cmp ecx, 0x900172a3
jne 0x416198
mov ecx, dword [ebx - 4]
add eax, 0x23
mov dword [esp + 0x3c], ecx
mov ecx, 0xac1f43e6
sub ebx, dword [esp + 0x3c]
cmp ebx, 3
seta byte [esp + 0x30]
cmp ebx, 0x24
setb byte [esp + 0x34]
cmp ecx, 0xac1f43e6
jne 0x416247
movzx ecx, byte [esp + 0x30]
movzx edx, byte [esp + 0x34]
mov esi, 0x73576479
mov ch, cl
xor ch, 1
mov dh, ch
and dh, cl
xor ch, dh
xor dh, 1
or dh, cl
xor dh, 1
or dh, ch
xor dh, 1
mov cl, dh
xor dh, dl
or cl, dl
mov dl, cl
xor dl, dh
not dh
or dh, cl
not dl
mov ecx, 0xd8f649f6
not dh
or dh, dl
test dh, 1
cmovne ecx, esi
cmovne ecx, esi
cmp ecx, 0xac1f43e6
je 0x4161f6
cmp ecx, 0xd8f649f6
je 0x41625c
cmp ecx, 0x73576479
jne 0x4161ee
jmp 0x416333
mov ebx, dword [esp + 0x3c]
mov ecx, 0xb4fb5a6a
cmp ecx, 0x900172a3
jne 0x416198
jmp 0x4161cb
mov eax, dword [esp + 0x34]
mov eax, dword [esp + 4]
mov dword [esp + 0x24], eax
lea eax, [esp + 0xc]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x24]
lea eax, [ebp + 1]
push eax
call fcn.00408310
add esp, 4
mov dword [esp + 0xc], eax
mov ecx, 0x35e52f0d
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov dword [eax], ebx
mov eax, dword [esp]
mov dword [eax + 0x14], ebp
mov eax, dword [esp + 0xc]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x20]
cmp eax, 0xf
mov eax, 0xa487e8ee
cmova eax, ecx
cmp eax, 0xebdfaef9
jg 0x415f17
jmp 0x415f50
push eax
push ebx
call fcn.0041788e
add esp, 8
mov eax, dword [esp + 0xc]
mov ecx, dword [esp]
mov dword [ecx], eax
mov eax, 0x38bb8af1
cmp eax, 0xebdfaef9
jg 0x415f17
jmp 0x415f50
cmp eax, 0xc063324c
jne 0x415f10
call fcn.00408300
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x40]
xor ecx, esp
call fcn.004178c4
mov eax, dword [esp + 4]
add esp, 0x44
pop esi
pop edi
pop ebx
pop ebp
ret 0x10
call fcn.00423509
int3