Function at 0x416a4f
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x71c
push ebx
push ebp
push esi
xor esi, esi
mov dword [esp + 0x34], 0x3a28211d
push edi
mov dword [esp + 0x3c], 0x2b3c2f39
mov ecx, esi
mov dword [esp + 0x40], 0x222f1812
mov dword [esp + 0x44], 0x1d122b38
mov dword [esp + 0x48], 0x232f2b3a
mov al, byte [esp + ecx + 0x38]
xor al, 0x4e
movzx eax, al
mov word [esp + ecx*2 + 0xac], ax
inc ecx
cmp ecx, 0x14
jl 0x416a85
xor eax, eax
mov dword [esp + 0x24], 0xfbff0eed
push 0x66
mov word [esp + 0xd8], ax
mov ebx, 0xff
mov dword [esp + 0x2c], 0xefbea07
mov ecx, esi
mov byte [esp + 0x30], 2
pop edx
movzx eax, byte [esp + ecx + 0x24]
add ax, dx
and ax, bx
mov word [esp + ecx*2 + 0x80], ax
inc ecx
cmp ecx, 9
jl 0x416ac5
movzx ecx, byte [0x42b9b0]
lea edx, [esp + 0xac]
xor eax, eax
mov word [esp + 0x92], ax
mov eax, 0x2fef
add cx, ax
mov al, cl
mov word [0x42b9a4], cx
or al, 0x81
or cl, 0x43
mov byte [0x42b99f], al
lea eax, [esp + 0x328]
push 0x400
push eax
lea eax, [esp + 0x88]
mov byte [0x42b9b0], cl
push eax
mov ecx, 0x80000001
call fcn.00422b9d
add esp, 0xc
test al, al
je 0x417142
mov cl, byte [0x42b99f]
mov edx, 0x6d61
xor cl, 0xb2
movzx eax, cl
mov byte [0x42b99f], cl
or ax, dx
add cl, 2
mov word [0x42b9a4], ax
mov byte [0x42b9b0], cl
lea eax, [esp + 0x328]
xor ecx, ecx
mov edx, 0xeeb55893
push eax
inc ecx
call fcn.00415084
call eax
mov cl, byte [0x42b99f]
and cl, 0x73
mov byte [0x42b9b0], cl
cmp eax, 0xffffffff
je 0x417142
test al, 0x10
je 0x417142
mov dword [esp + 0x1c], 0xfdd2cd84
mov edx, esi
mov byte [esp + 0x20], 0x8b
mov al, byte [esp + edx + 0x1c]
xor al, 0xa1
movzx eax, al
mov word [esp + edx*2 + 0x58], ax
inc edx
cmp edx, 5
jl 0x416bb0
xor eax, eax
mov dword [esp + 0x10], 0x213831ea
push 0x2e
mov word [esp + 0x66], ax
mov edx, esi
pop eax
mov dword [esp + 0x14], 0x2b333428
mov byte [esp + 0x18], al
mov byte [esp + 0x19], 0x2c
movzx eax, byte [esp + edx + 0x10]
add ax, 0x3b
and ax, bx
mov word [esp + edx*2 + 0x94], ax
inc edx
cmp edx, 0xa
jl 0x416be9
xor eax, eax
mov edx, 0xac
mov word [esp + 0xa8], ax
movzx eax, cl
or cl, 5
add ax, dx
mov byte [0x42b99f], cl
mov word [0x42b9a4], ax
and cl, 0xcf
lea eax, [esp + 0x328]
mov byte [0x42b9b0], cl
push eax
lea eax, [esp + 0x5c]
push eax
call fcn.00422def
mov bx, word [0x42b9a4]
mov ebp, eax
pop ecx
pop ecx
mov ecx, 0x9ba7
movzx edx, bx
imul edx, ecx
mov dword [esp + 0x1c], ebp
test ebp, ebp
je 0x417024
sub bl, 0x1e
mov edx, 0x54e1cc7b
mov al, bl
mov byte [0x42b9b0], bl
add al, 0x5a
and bl, 0x1b
movzx ecx, al
mov eax, 0xa8a7
imul ecx, eax
movzx eax, bl
imul eax, eax, 0xe8
mov word [0x42b9a4], cx
xor ecx, ecx
inc ecx
mov byte [0x42b99f], al
lea eax, [esp + 0xd8]
push eax
push ebp
call fcn.00415084
call eax
movzx ecx, byte [0x42b9b0]
mov ebx, eax
mov eax, 0x1cad
mov dword [esp + 0x4c], ebx
sub cx, ax
mov edx, 0x17299c7b
mov word [0x42b9a4], cx
movzx ecx, cl
imul ecx, ecx, 0x19
mov byte [0x42b99f], cl
xor ecx, ecx
inc ecx
call fcn.00415084
movzx ecx, byte [0x42b9b0]
mov dword [esp + 0x34], eax
mov eax, 0x27bc
add cx, ax
mov word [0x42b9a4], cx
cmp ebx, 0xffffffff
je 0x41700d
mov ebp, dword [esp + 0x34]
push 0x2e
mov word [esp + 0x34], 0xf9f9
pop edi
xor eax, eax
mov word [esp + 0x34], di
mov word [esp + 0x36], ax
mov ecx, esi
mov al, byte [esp + ecx + 0x30]
xor al, 0xd7
movzx eax, al
mov word [esp + ecx*2 + 0x50], ax
inc ecx
cmp ecx, 2
jl 0x416d20
mov cl, byte [0x42b99f]
xor eax, eax
mov word [esp + 0x54], ax
or cl, 0x85
movzx eax, cl
mov edx, 0xaf1d
and ax, dx
mov byte [0x42b9b0], cl
mov word [0x42b9a4], ax
and cl, 0x19
lea eax, [esp + 0x34]
mov byte [0x42b99f], cl
push eax
lea eax, [esp + 0x108]
push eax
call fcn.00405af6
pop ecx
pop ecx
test eax, eax
je 0x41714d
lea eax, [esp + 0x50]
push eax
lea eax, [esp + 0x108]
push eax
call fcn.00405af6
pop ecx
pop ecx
test eax, eax
je 0x41714d
movzx ecx, byte [0x42b9b0]
mov eax, 0xc7e1
imul ecx, eax
test byte [esp + 0xd8], 0xa7
mov word [0x42b9a4], cx
je 0x416fd3
mov al, byte [0x42b99f]
or al, 0x58
mov byte [0x42b9b0], al
and al, 0x35
mov byte [0x42b99f], al
lea eax, [esp + 0x104]
push eax
call fcn.0040581e
pop ecx
cmp eax, 4
jb 0x416fd3
push 0x73
pop eax
cmp word [esp + 0x104], ax
jne 0x416fd3
cmp word [esp + 0x106], ax
jne 0x416fd3
push 0x66
pop eax
cmp word [esp + 0x108], ax
jne 0x416fd3
cmp word [esp + 0x10a], 0x6e
jne 0x416fd3
push 0x2e
pop eax
mov byte [esp + 0x24], 0x67
mov ecx, esi
mov byte [esp + 0x25], al
mov word [esp + 0x26], 0x1e31
mov byte [esp + 0x28], 0x67
mov byte [esp + 0x29], al
mov byte [esp + 0x2a], 0x31
mov al, byte [esp + ecx + 0x24]
xor al, 0x42
movzx eax, al
mov word [esp + ecx*2 + 0x38], ax
inc ecx
cmp ecx, 7
jl 0x416e4c
xor eax, eax
mov ecx, 0x4c02
mov word [esp + 0x46], ax
mov al, byte [0x42b99f]
add al, 0xa7
mov byte [0x42b99f], al
movzx eax, al
sub ax, cx
mov word [0x42b9a4], ax
mov al, byte [0x42b9b0]
xor al, 0xf6
or al, 0xd4
mov byte [0x42b9b0], al
lea eax, [esp + 0x104]
push eax
lea eax, [esp + 0x32c]
push eax
lea eax, [esp + 0x40]
push eax
call fcn.00422def
mov cl, byte [0x42b9a4]
mov edi, eax
xor cl, 0x10
add esp, 0xc
and cl, 0x36
mov byte [0x42b9b0], cl
test edi, edi
je 0x416fd0
mov dword [esp + 0x10], 0xe4e0f1d6
mov ecx, esi
mov dword [esp + 0x14], 0xe9a0aae8
mov byte [esp + 0x18], 0xf6
mov al, byte [esp + ecx + 0x10]
xor al, 0x85
movzx eax, al
mov word [esp + ecx*2 + 0x64], ax
inc ecx
cmp ecx, 9
jl 0x416ee2
mov cl, byte [0x42b99f]
xor eax, eax
mov word [esp + 0x76], ax
movzx eax, cl
and cl, 0x2e
xor eax, 0xbad7
mov byte [0x42b99f], cl
or eax, 0xad5
sub cl, 0x10
mov word [0x42b9a4], ax
lea eax, [esp + 0x104]
push eax
lea eax, [esp + 0x68]
mov byte [0x42b9b0], cl
push eax
call fcn.00422def
pop ecx
pop ecx
mov cl, byte [0x42b99f]
mov ebx, eax
or cl, 0xce
mov dl, cl
or dl, 0xfe
test ebx, ebx
je 0x416fa2
and cl, 0x8f
mov edx, ebx
mov byte [0x42b99f], cl
xor cl, 0xda
mov byte [0x42b9b0], cl
mov ecx, edi
call fcn.0041dcc2
movzx eax, byte [0x42b9b0]
mov ecx, 0xebe9
and ax, cx
mov ecx, 0x3f1c
xor ax, cx
mov word [0x42b9a4], ax
and al, 0x41
push ebx
mov byte [0x42b9b0], al
call fcn.004056f0
mov dl, byte [0x42b99f]
pop ecx
mov cl, byte [0x42b9b0]
movzx eax, dl
xor cl, 0x7c
mov edx, 0x2e43
mov byte [0x42b99f], cl
sub ax, dx
xor cl, 0xc9
push edi
mov word [0x42b9a4], ax
mov byte [0x42b9b0], cl
call fcn.004056f0
mov ebx, dword [esp + 0x50]
pop ecx
push 0x2e
pop edi
lea eax, [esp + 0xd8]
push eax
push ebx
call ebp
test eax, eax
jne 0x416d12
mov al, byte [0x42b99f]
xor ecx, ecx
and al, 0xb5
mov edx, 0x83fbc401
push ebx
inc ecx
mov byte [0x42b9b0], al
call fcn.00415084
call eax
mov cx, word [0x42b9a4]
mov ebp, dword [esp + 0x1c]
add cl, 0x2d
push ebp
mov byte [0x42b9b0], cl
call fcn.004056f0
mov dx, word [0x42b9a4]
pop ecx
mov eax, 0x4ad3
mov ecx, 0x3d15
xor ax, dx
add ax, cx
mov word [0x42b9a4], ax
add al, 0x3d
mov byte [0x42b9b0], al
lea eax, [esp + 0x328]
push eax
lea eax, [esp + 0x98]
push eax
call fcn.00422def
mov dl, byte [0x42b9b0]
mov edi, eax
movzx ebx, byte [0x42b99f]
mov eax, 0x644
pop ecx
pop ecx
mov cl, dl
xor bx, ax
xor cl, 0xd4
mov word [0x42b9a4], bx
or dl, 0x3b
mov byte [0x42b99f], cl
mov byte [0x42b9b0], dl
test edi, edi
je 0x417142
mov dword [esp + 0x10], 0xbcb8a98e
mov ecx, esi
mov dword [esp + 0x14], 0xb2bef2b0
mov dword [esp + 0x18], 0xbab4bbb3
mov al, byte [esp + ecx + 0x10]
xor al, 0xdd
movzx eax, al
mov word [esp + ecx*2 + 0x64], ax
inc ecx
cmp ecx, 0xc
jl 0x4170ac
xor eax, eax
mov dword [esp + 0x1c], 0x7b8d4541
mov word [esp + 0x7c], ax
mov ecx, 0xff
mov byte [esp + 0x20], 0x7d
movzx eax, byte [esp + esi + 0x1c]
sub ax, 0x17
and ax, cx
mov word [esp + esi*2 + 0x10], ax
inc esi
cmp esi, 5
jl 0x4170d9
xor eax, eax
lea edx, [esp + 0x64]
mov word [esp + 0x1a], ax
mov ecx, 0xbd4e
movzx eax, bl
imul eax, eax, 0x3a
push 1
mov byte [0x42b9b0], al
movzx eax, al
and ax, cx
mov ecx, 0x300e
or ax, cx
mov ecx, edi
mov word [0x42b9a4], ax
lea eax, [esp + 0x14]
push eax
call fcn.0041d42f
mov al, byte [0x42b9b0]
and al, 0x24
push edi
mov byte [0x42b99f], al
call fcn.004056f0
add esp, 0xc
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x71c
ret
mov cl, byte [0x42b99f]
mov al, cl
xor al, 0x46
and cl, 0x68
mov byte [0x42b9b0], al
mov byte [0x42b99f], cl
jmp 0x416fd3