Function at 0x10016cb2
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x38
push ebx
push esi
push edi
push 0xa
mov dword [ebp - 4], ecx
lea edi, [ebp - 0x38]
pop ecx
mov esi, str.Timeout_was_reached
xor ebx, ebx
rep movsd dword es:[edi], dword [esi]
push 0x6d
pop esi
mov edx, ebx
cmp si, word [ebp - 0x38]
jne 0x10016d09
mov eax, ebx
test si, si
je 0x10016cf8
cmp word [ebp + eax - 0x38], bx
je 0x10016cf8
inc edx
lea eax, [edx + edx]
movzx esi, word [eax + str.moc.izihcppa]
cmp si, word [ebp + eax - 0x38]
je 0x10016cda
cmp dword [ebp - 4], edx
jae 0x10016d09
mov eax, dword [0x1003f2b0]
and eax, 0x2b89e8c6
jmp 0x10016d0e
mov eax, dword [0x1003f2d4]
mov ecx, ebx
lea edi, [eax - 0x67e45494]
inc ecx
cmp byte [ecx + str.ti.oraseponibru], bl
jne 0x10016d16
mov esi, dword [ebp - 4]
mov edx, dword [0x1003f22c]
cmp esi, ecx
jae 0x10016d43
cmp esi, 0x147c
jne 0x10016d3a
lea edx, [eax + 0x3289c7e]
xor edi, 0x8a5affb8
inc esi
jmp 0x10016d28
mov esi, str.on.ladettin
imul ebx, edx, 0xd398e33
lea edi, [ebp - 0x10]
and edx, 0x298195ca
xor eax, eax
mov dword [0x1003f2f0], edx
movsd dword es:[edi], dword [esi]
mov dword [0x1003f2b0], ebx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
cmp byte [ebp - 0x10], 0x49
jne 0x10016da1
mov cl, 0x49
test cl, cl
je 0x10016d88
cmp byte [ebp + eax - 0x10], 0
je 0x10016d88
mov cl, byte [eax + 0x10034c51]
inc eax
cmp cl, byte [ebp + eax - 0x10]
je 0x10016d70
cmp dword [ebp - 4], eax
jae 0x10016da1
sub eax, dword [ebp - 4]
xor edx, 0x4fa79620
sub eax, 1
jne 0x10016d90
mov dword [0x1003f2f0], edx
mov ecx, dword [ebp - 4]
xor esi, esi
mov eax, esi
cmp word [ecx], si
je 0x10016dc7
inc eax
cmp word [ecx + eax*2], si
jne 0x10016dad
cmp dword [ebp - 4], eax
jae 0x10016dc7
mov ebx, edx
xor ebx, 0xc9b98244
mov dword [0x1003f2b0], ebx
mov ecx, ebx
mov eax, esi
and ecx, 0xbd1ee7a3
inc eax
cmp byte [eax + str.rukatakanahalfwidth], 0
jne 0x10016dd1
cmp eax, 0x1b77
jae 0x10016e4d
mov eax, esi
imul edx, ecx, 0x62113e8c
mov esi, str.enbopomofo
lea edi, [ebp - 0x10]
movsd dword es:[edi], dword [esi]
mov dword [0x1003f2f0], edx
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
cmp byte [ebp - 0x10], 0x72
jne 0x10016e1d
mov cl, 0x72
test cl, cl
je 0x10016e1d
cmp byte [ebp + eax - 0x10], 0
je 0x10016e1d
mov cl, byte [eax + 0x10034b71]
inc eax
cmp cl, byte [ebp + eax - 0x10]
je 0x10016e05
movzx ecx, byte [eax + str.rukatakanahalfwidth]
movzx eax, byte [ebp + eax - 0x10]
sub ecx, eax
cmp ecx, 0x1b56
jbe 0x10016e43
xor edx, 0x1e22f963
xor esi, esi
mov dword [0x1003f2f0], edx
jmp 0x10016e59
xor ebx, 0xb7a7fbd3
xor esi, esi
jmp 0x10016e53
or ebx, 0xfdf2c529
mov dword [0x1003f2b0], ebx
mov edi, ebx
mov eax, esi
and edi, 0x9cf901d0
mov dword [0x1003f2d4], edi
inc eax
cmp word [eax*2 + str.moc.izihcppa], si
jne 0x10016e69
cmp eax, 0x18d0
ja 0x10016e89
mov edx, ebx
or edx, 0xe964f380
mov dword [0x1003f2f0], edx
and edx, 0xe403aacf
xor eax, eax
mov dword [0x1003f22c], edx
inc esi
cmp word [esi*2 + str.tusmallkatakana], ax
jne 0x10016e97
mov ecx, dword [ebp - 4]
cmp ecx, esi
jae 0x10016ece
mov eax, edi
or eax, 0xe35819a6
mov dword [0x1003f2f0], eax
cmp ecx, 0xe8a
jne 0x10016ec9
mov eax, edi
and eax, 0x9dc57acf
mov dword [0x1003f2b0], eax
inc ecx
cmp ecx, esi
jb 0x10016eb5
pop edi
pop esi
pop ebx
leave
ret