Function at 0x41c586
Capabilities:
Encode data using xor

Disassembly:
push ebp
lea ebp, [esp - 0x78]
sub esp, 0x4dc
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp + 0x60], 0x464e426a
mov edi, ecx
mov byte [ebp + 0x64], 0x43
mov esi, edx
mov ecx, ebx
mov al, byte [ebp + ecx + 0x60]
xor al, 0x2f
movzx eax, al
mov word [ebp + ecx*2 + 0x1c], ax
inc ecx
cmp ecx, 5
jl 0x41c5a7
movzx ecx, word [0x42ca9c]
lea edx, [ebp + 0x1c]
xor eax, eax
and ecx, 0x44090
mov word [ebp + 0x26], ax
imul eax, ecx, 0xe52c
mov dword [0x42ca80], ecx
or ecx, 0x350f5f11
push ebx
push ecx
mov dword [0x42ca7c], ecx
mov ecx, edi
xor eax, 0xc53f
mov word [0x42ca9c], ax
lea eax, [ebp - 0x464]
push eax
call fcn.0041cb61
add esp, 0xc
test al, al
je 0x41cb59
mov dword [ebp + 0x60], 0xc0410e8
mov ecx, ebx
mov word [ebp + 0x64], 0xdd0f
mov byte [ebp + 0x66], 0xc3
mov al, byte [ebp + ecx + 0x60]
add al, 0x5d
mov byte [ebp + ecx + 0x30], al
inc ecx
cmp ecx, 7
jl 0x41c622
mov byte [ebp + 0x37], bl
mov ecx, ebx
mov dword [ebp + 0x68], 0x83878086
mov edx, 0xff
mov dword [ebp + 0x6c], 0xa5988653
mov word [ebp + 0x70], 0x98a9
mov byte [ebp + 0x72], 0xa5
movzx eax, byte [ebp + ecx + 0x68]
sub ax, 0x33
and ax, dx
mov word [ebp + ecx*2 - 0x10], ax
inc ecx
cmp ecx, 0xb
jl 0x41c654
xor eax, eax
mov dword [ebp + 0x68], 0x88a5a4a5
mov word [ebp + 6], ax
mov ecx, ebx
mov dword [ebp + 0x6c], 0xc8b6a575
mov dword [ebp + 0x70], 0xc7c4ccc8
mov byte [ebp + 0x74], 0xb9
movzx eax, byte [ebp + ecx + 0x68]
sub ax, 0x55
and ax, dx
mov word [ebp + ecx*2 - 0x2c], ax
inc ecx
cmp ecx, 0xd
jl 0x41c68c
xor eax, eax
mov dword [ebp + 0x4c], 0xbaba878a
mov word [ebp - 0x12], ax
mov ecx, ebx
mov dword [ebp + 0x50], 0xbabababa
mov dword [ebp + 0x54], 0xbabababa
mov dword [ebp + 0x58], 0xbabababa
mov word [ebp + 0x5c], 0x8aba
mov byte [ebp + 0x5e], 0x87
mov al, byte [ebp + ecx + 0x4c]
sub al, 0x7d
mov byte [ebp + ecx + 8], al
inc ecx
cmp ecx, 0x13
jl 0x41c6d1
mov ecx, dword [0x42ca7c]
lea edx, [ebp + 0x30]
push 0xffffffffffffffff
mov byte [ebp + 0x1b], bl
lea eax, [ecx + 0x18be]
or ecx, 0xb58847e8
mov dword [0x42ca80], ecx
mov ecx, esi
mov word [0x42ca9c], ax
call fcn.00423d47
mov eax, 0x1916
lea edx, [ebp - 0x464]
xor word [0x42ca9c], ax
mov eax, dword [0x42ca80]
pop ecx
and eax, 0xb511584
mov ecx, esi
mov dword [0x42ca7c], eax
call fcn.004232ba
mov eax, 0xf1aa
lea edx, [ebp - 0x10]
add word [0x42ca9c], ax
mov eax, dword [0x42ca7c]
add eax, 0xed6b4165
push ebx
mov dword [0x42ca80], eax
lea eax, [ebp - 0x464]
push ecx
push eax
mov ecx, edi
call fcn.0041cb61
add esp, 0xc
test al, al
je 0x41c7d9
mov dword [ebp + 0x60], 0xb8915356
mov ecx, ebx
mov dword [ebp + 0x64], 0x6983bdbc
mov al, byte [ebp + ecx + 0x60]
sub al, 0x49
mov byte [ebp + ecx + 0x38], al
inc ecx
cmp ecx, 8
jl 0x41c77c
imul eax, dword [0x42ca80], 0x69c8e18f
lea edx, [ebp + 0x38]
push 0xffffffffffffffff
mov ecx, esi
mov byte [ebp + 0x40], bl
mov dword [0x42ca7c], eax
imul eax, dword [0x42ca80], 0xbb25
mov word [0x42ca9c], ax
call fcn.00423d47
movzx eax, word [0x42ca9c]
lea edx, [ebp - 0x464]
pop ecx
add eax, 0x3cf08a40
mov ecx, esi
mov dword [0x42ca80], eax
call fcn.004232ba
mov eax, dword [0x42ca80]
lea edx, [ebp - 0x2c]
add eax, 0x7037972d
mov ecx, 0x7823
add word [0x42ca9c], cx
mov dword [0x42ca80], eax
xor eax, 0x1cd51132
or eax, 0xc10aeec1
mov dword [0x42ca7c], eax
lea eax, [ebp + 0x64]
push eax
push ecx
lea eax, [ebp - 0x464]
mov ecx, edi
push eax
call fcn.0041cb61
add esp, 0xc
test al, al
jne 0x41ca0f
mov dword [ebp + 0x68], 0x98899591
xor ecx, ecx
mov dword [ebp + 0x6c], 0xbba99868
mov edx, 0xff
mov dword [ebp + 0x70], 0xbab7bfbb
mov byte [ebp + 0x74], 0xac
movzx eax, byte [ebp + ecx + 0x68]
sub ax, 0x48
and ax, dx
mov word [ebp + ecx*2 + 0x44], ax
inc ecx
cmp ecx, 0xd
jl 0x41c844
xor eax, eax
lea edx, [ebp + 0x44]
mov word [ebp + 0x5e], ax
mov eax, dword [0x42ca80]
add eax, 0xffffe7b3
mov word [0x42ca9c], ax
movzx eax, ax
xor eax, 0x85ebddf1
mov dword [0x42ca80], eax
add eax, 0xd6d69172
mov dword [0x42ca7c], eax
lea eax, [ebp + 0x64]
push eax
push ecx
lea eax, [ebp - 0x464]
mov ecx, edi
push eax
call fcn.0041cb61
add esp, 0xc
test al, al
jne 0x41c9f9
mov dword [ebp + 0x68], 0x1612120e
xor ecx, ecx
mov dword [ebp + 0x6c], 0x35271666
mov dword [ebp + 0x70], 0x34293135
mov byte [ebp + 0x74], 0x22
mov al, byte [ebp + ecx + 0x68]
xor al, 0x46
movzx eax, al
mov word [ebp + ecx*2 - 0x48], ax
inc ecx
cmp ecx, 0xd
jl 0x41c8c4
mov ecx, dword [0x42ca80]
lea edx, [ebp - 0x48]
xor eax, eax
xor ecx, 0xb9c3792b
mov word [ebp - 0x2e], ax
xor ecx, 0xdb156ecd
movzx eax, word [0x42ca9c]
add eax, 0x1ef83973
mov dword [0x42ca7c], ecx
mov dword [0x42ca80], eax
lea eax, [ecx - 0x6b6c]
mov word [0x42ca9c], ax
lea eax, [ebp + 0x64]
push eax
push ecx
lea eax, [ebp - 0x464]
mov ecx, edi
push eax
call fcn.0041cb61
add esp, 0xc
test al, al
jne 0x41c9d4
mov dword [ebp + 0x68], 0x83879e80
xor ecx, ecx
mov dword [ebp + 0x6c], 0xa0b283f3
mov dword [ebp + 0x70], 0xa1bca4a0
mov byte [ebp + 0x74], 0xb7
mov al, byte [ebp + ecx + 0x68]
xor al, 0xd3
movzx eax, al
mov word [ebp + ecx*2 - 0x64], ax
inc ecx
cmp ecx, 0xd
jl 0x41c94f
xor eax, eax
lea edx, [ebp - 0x64]
mov word [ebp - 0x4a], ax
mov eax, dword [0x42ca80]
add eax, 0x5d2ec47b
mov dword [0x42ca7c], eax
imul eax, eax, 0x9788
mov word [0x42ca9c], ax
lea eax, [ebp + 0x64]
push eax
push ecx
lea eax, [ebp - 0x464]
mov ecx, edi
push eax
call fcn.0041cb61
add esp, 0xc
test al, al
jne 0x41c9bc
mov edx, dword [0x42ca7c]
mov eax, dword [0x42ca80]
and edx, 0x4f9bf352
add eax, 0xffff91b3
movzx ecx, ax
jmp 0x41c9f1
mov eax, dword [0x42ca7c]
add eax, 0x4acf
movzx edx, ax
and edx, 0xb9ca25f2
movzx ecx, ax
jmp 0x41c9ef
mov cx, word [0x42ca9c]
mov eax, 0xbcd4
mov edx, dword [0x42ca7c]
add cx, ax
add edx, 0x5c8eafb2
mov bl, 1
mov dword [0x42ca7c], edx
jmp 0x41ca41
mov cx, word [0x42ca9c]
movzx eax, cx
or eax, 0x17864f5a
mov dword [0x42ca7c], eax
jmp 0x41ca3f
movzx eax, word [0x42ca9c]
movzx ecx, word [0x42ca9c]
or eax, 0xf84206ba
mov dword [0x42ca7c], eax
mov eax, 0x77c7
imul ecx, eax
mov eax, 0x5f1e
add cx, ax
mov eax, 0xe3f8
xor cx, ax
mov bl, 1
mov eax, 0xc6c0
xor cx, ax
movzx eax, cx
mov word [0x42ca9c], cx
test bl, bl
je 0x41cb3a
xor eax, 0x620
xor ebx, ebx
lea ecx, [eax + 0x760a]
movzx eax, cx
imul edx, eax, 0x3ccd958b
lea eax, [ebp - 0x463]
mov dword [ebp + 0x2c], eax
lea eax, [ecx - 0x7d78]
and eax, 0xfa03
mov word [0x42ca9c], ax
mov eax, dword [ebp + 0x64]
mov dword [ebp + 0x28], eax
lea eax, [ebp + 0x38]
push eax
push ebx
push ebx
push ebx
push ebx
push ebx
lea eax, [ebp + 0x28]
mov dword [0x42ca7c], edx
push eax
xor edx, 0xf7ffef21
mov dword [0x42ca80], edx
mov edx, 0xbedfd981
push 3
pop ecx
call fcn.00415333
call eax
test eax, eax
je 0x41cb3a
mov dword [ebp + 0x60], 0x6a430508
mov ecx, ebx
mov dword [ebp + 0x64], 0x1b356f6e
mov al, byte [ebp + ecx + 0x60]
add al, 5
mov byte [ebp + ecx + 0x6c], al
inc ecx
cmp ecx, 8
jl 0x41cad3
mov eax, dword [0x42ca7c]
lea edx, [ebp + 0x6c]
add eax, 0x6280
mov byte [ebp + 0x74], bl
and eax, 0xdb29
mov ecx, esi
mov word [0x42ca9c], ax
movzx eax, ax
imul eax, eax, 0xf4ec5698
push 0xffffffffffffffff
mov dword [0x42ca80], eax
call fcn.00423d47
push dword [ebp + 0x38]
mov edx, dword [ebp + 0x3c]
mov eax, 0x685f
or dword [0x42ca80], 0x39b11ef
mov ecx, esi
or word [0x42ca9c], ax
call fcn.00423d47
pop ecx
pop ecx
movzx eax, word [0x42ca9c]
lea edx, [ebp + 8]
imul eax, eax, 0x5fc03db8
mov ecx, esi
push 0xffffffffffffffff
mov dword [0x42ca80], eax
call fcn.00423d47
pop ecx
pop edi
pop esi
pop ebx
add ebp, 0x78
leave
ret