Function at 0x415f6b
Capabilities:
Encode data using xor

Disassembly:
movzx eax, byte [0x42b9cc]
sub esp, 0x34
imul eax, eax, 0xc4
push ebx
push ebp
push esi
mov byte [0x42b9a8], al
mov eax, dword [0x42b9ec]
push edi
add eax, 0x9095ff22
push 4
pop ecx
mov dword [str.c__u], eax
call fcn.0041e996
mov ebp, eax
test ebp, ebp
je 0x41652c
mov ecx, dword [str.c__u]
mov eax, 0x7a92
mov dx, word [0x42b9cc]
add ecx, 0xe0c94d11
mov dword [0x42b9ec], ecx
mov cl, dl
or cl, 0xdf
and dx, ax
push 0x428f24
push ebp
mov byte [0x42b9c7], cl
mov word [0x42b9b8], dx
call fcn.00405af6
pop ecx
pop ecx
test eax, eax
je 0x416507
mov al, byte [0x42b9c7]
sub al, 0x52
mov byte [0x42b9a8], al
movzx eax, byte [0x42b9ec]
imul eax, eax, 0xeb
push 0x1000
mov byte [0x42b9c7], al
mov eax, 0x3662
xor ax, word [0x42b9b8]
mov word [0x42b9cc], ax
call fcn.0040570b
pop ecx
movzx ecx, byte [0x42b9b8]
mov edi, eax
imul ecx, ecx, 0xa7
mov byte [0x42b9c7], cl
test edi, edi
je 0x416507
push 0x7c
pop eax
mov word [esp + 0x1c], ax
xor eax, eax
mov word [esp + 0x1e], ax
mov eax, dword [str.c__u]
and eax, 0x2db4
and dword [esp + 0x20], 0
mov word [0x42b9b8], ax
mov eax, dword [0x42b9ec]
lea ecx, [eax - 0x18e0313]
or al, 0xc8
mov byte [0x42b9c7], al
movzx eax, al
add eax, 0x7b7bbe77
mov dword [str.c__u], ecx
mov dword [0x42b9ec], eax
sub cl, 0x34
lea eax, [esp + 0x20]
and cl, 0xd2
push eax
lea eax, [esp + 0x20]
mov byte [0x42b9a8], cl
push eax
push ebp
call fcn.004057dc
mov edx, dword [0x42b9ec]
mov esi, eax
mov ecx, edx
mov bl, dl
and ecx, 0x16647496
or bl, 0x21
mov dword [str.c__u], ecx
add esp, 0xc
mov cl, byte [0x42b9cc]
and cl, 0xa5
mov byte [0x42b9a8], bl
mov byte [0x42b9c7], cl
test esi, esi
je 0x4164f3
mov word [esp + 0x14], 0xcc5
mov byte [esp + 0x16], 0x13
xor ecx, ecx
movzx eax, byte [esp + ecx + 0x14]
mov edx, 0xff
add ax, 0x60
and ax, dx
mov word [esp + ecx*2 + 0x30], ax
inc ecx
cmp ecx, 3
jl 0x4160f3
xor eax, eax
movzx ecx, bl
mov word [esp + 0x36], ax
mov eax, ecx
and eax, 0x98c6
or ecx, 0x607a
mov word [0x42b9b8], ax
lea eax, [esp + 0x30]
push esi
push eax
mov word [0x42b9cc], cx
call fcn.0042318b
sub dword [0x42b9ec], 0x387bb077
mov dword [esp + 0x2c], eax
pop ecx
pop ecx
test eax, eax
je 0x4164a6
movzx ecx, byte [0x42b9c7]
mov eax, 0xcd48
or dword [str.c__u], 0x8533d0c7
and cx, ax
movzx eax, byte [0x42b9c7]
xor ebx, ebx
add eax, 0x20999ca5
mov word [0x42b9cc], cx
and eax, 0x6b509633
mov dword [0x42b9ec], eax
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x20]
push eax
push ebx
call fcn.004057dc
movzx edx, byte [0x42b9a8]
add esp, 0xc
mov ecx, 0x157d
sub dx, cx
movzx ecx, word [0x42b9b8]
sub ecx, 0x3df3f5e9
mov word [0x42b9cc], dx
mov dword [str.c__u], ecx
sub dl, 0x63
push 0x800
xor ecx, ecx
mov byte [0x42b9c7], dl
push edi
push eax
mov edx, 0x5060ff33
inc ecx
call fcn.0041568d
call eax
test eax, eax
je 0x416475
mov word [esp + 0x18], 0x9ed7
mov ecx, ebx
mov byte [esp + 0x1a], 0x81
mov al, byte [esp + ecx + 0x18]
xor al, 0xf2
movzx eax, al
mov word [esp + ecx*2 + 0x38], ax
inc ecx
cmp ecx, 3
jl 0x4161ff
movzx ecx, word [0x42b9b8]
xor eax, eax
mov word [esp + 0x3e], ax
add ecx, 0xd0c5e55e
imul eax, ecx, 0x79efca09
mov edx, 0x1621
and cl, 0xdf
sub cl, 0x50
mov byte [0x42b9c7], cl
push edi
mov dword [0x42b9ec], eax
movzx eax, cl
xor ax, dx
mov word [0x42b9b8], ax
movzx eax, cl
mov ecx, 0x551
add ax, cx
mov word [0x42b9cc], ax
call fcn.0040581e
pop ecx
movzx ecx, byte [0x42b9cc]
mov edx, eax
imul ecx, ecx, 0xf4
mov eax, 0x425a
mov byte [0x42b9a8], cl
movzx ecx, cl
add eax, ecx
movzx ecx, word [edi + edx*2 - 2]
mov word [0x42b9b8], ax
cmp ecx, 0x5c
je 0x41629b
cmp ecx, 0x2f
jne 0x4162c8
mov cl, al
add eax, 0x7549
and cl, 0xb5
mov word [0x42b9b8], ax
sub cl, 0x70
movzx eax, cl
and eax, 0xe0f6a426
mov byte [0x42b9a8], cl
mov dword [0x42b9ec], eax
xor eax, eax
mov word [edi + edx*2 - 2], ax
movzx eax, byte [str.c__u]
imul eax, eax, 0x4b
add al, 0x5e
mov byte [0x42b9c7], al
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x20]
push eax
push ebx
call fcn.004057dc
movzx edx, byte [0x42b9a8]
add esp, 0xc
movzx ecx, byte [0x42b9c7]
push eax
mov eax, 0x49cb
xor dx, ax
mov eax, 0x5b2
add cx, ax
mov word [0x42b9cc], dx
movzx eax, dx
or eax, 0x4aa98a2a
mov word [0x42b9b8], cx
mov dword [str.c__u], eax
lea eax, [esp + 0x3c]
push eax
call fcn.0042318b
mov edx, dword [str.c__u]
mov esi, eax
pop ecx
pop ecx
mov ecx, edx
mov dword [esp + 0x2c], esi
xor ecx, 0x80c5
mov word [0x42b9cc], cx
test esi, esi
je 0x416475
or dl, 0xc2
mov byte [esp + 0x28], bl
movzx eax, dl
movzx ecx, dl
mov byte [0x42b9a8], dl
and ecx, 0x3f377cb0
mov edx, 0x7ed1
mov dword [0x42b9ec], ecx
sub ax, dx
mov word [0x42b9b8], ax
imul eax, ecx, 0x1e786623
mov dword [str.c__u], eax
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x20]
push eax
push ebx
call fcn.004057dc
movzx ecx, byte [0x42b9c7]
mov ebx, 0x4a2b
imul edx, ecx, 0x343d6adf
add esp, 0xc
movzx ecx, byte [0x42b9a8]
or cx, bx
mov bx, word [0x42b9b8]
cmp word [eax], 0x31
mov word [0x42b9cc], cx
mov dword [0x42b9ec], edx
lea ecx, [ebx - 0x6e]
mov byte [0x42b9a8], cl
jne 0x41640e
movzx eax, bx
sub cl, 0x7c
imul eax, eax, 0xf815fad1
and edx, 0x2090
or edx, 0x9005
mov byte [0x42b9a8], cl
mov word [0x42b9cc], dx
mov byte [esp + 0x28], 1
mov dword [str.c__u], eax
push dword [esp + 0x28]
movzx eax, cl
sub bl, 0xa
mov ecx, 0x26bb
mov byte [0x42b9c7], bl
add ax, cx
mov ecx, edi
push esi
mov esi, dword [esp + 0x2c]
mov edx, esi
mov word [0x42b9b8], ax
call fcn.00416540
mov cl, byte [0x42b9a8]
push dword [esp + 0x34]
or cl, 0xb9
movzx eax, cl
add eax, 0x5d02b2a4
mov byte [0x42b9c7], cl
mov dword [str.c__u], eax
movzx eax, cl
mov ecx, 0x513a
xor ax, cx
mov word [0x42b9cc], ax
call fcn.004056f0
add esp, 0xc
jmp 0x416479
mov esi, dword [esp + 0x24]
movzx eax, byte [0x42b9c7]
mov ecx, 0x2f42
and eax, 0x49f56cb6
mov dword [0x42b9ec], eax
movzx eax, byte [0x42b9a8]
add ax, cx
push esi
mov word [0x42b9b8], ax
call fcn.004056f0
pop ecx
mov ax, word [0x42b9b8]
mov ecx, 0x4ca7
xor ax, cx
mov word [0x42b9cc], ax
movzx eax, al
imul eax, eax, 0xe7
mov byte [0x42b9c7], al
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x20]
push eax
push 0
call fcn.004057dc
mov esi, eax
add esp, 0xc
test esi, esi
je 0x4164ed
mov bl, byte [0x42b9a8]
jmp 0x4160f1
mov edx, dword [0x42b9ec]
xor edx, 0xd391
push edi
mov word [0x42b9b8], dx
call fcn.004056f0
pop ecx
mov al, byte [0x42b9cc]
add al, 0x69
mov byte [0x42b9a8], al
mov eax, dword [str.c__u]
add eax, 0xffffb160
push ebp
mov word [0x42b9b8], ax
call fcn.004056f0
pop ecx
jmp 0x416538
mov al, byte [0x42b9cc]
add al, 0x53
mov byte [0x42b9a8], al
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x34
ret