Function at 0x50c8a0
Capabilities:
Encode data using xor

Disassembly:
push ecx
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x10]
mov al, byte [ecx]
xor edx, edx
test al, al
push esi
mov dword [esp + 4], ecx
je 0x50c8d9
movsx eax, al
mov esi, eax
xor esi, edx
xor esi, 0x946a4f
shl esi, 8
add esi, edx
xor esi, 0x573ed587
add esi, eax
mov al, byte [ecx + 1]
inc ecx
test al, al
mov edx, esi
jne 0x50c8b5
mov ecx, dword [esp + 0xc]
push ebx
mov ebx, dword [ecx + 0x10]
mov esi, ebx
mov al, byte [esi]
push ebp
xor ecx, ecx
test al, al
push edi
je 0x50c911
movsx eax, al
mov edi, eax
xor edi, ecx
xor edi, 0x946a4f
shl edi, 8
add edi, ecx
xor edi, 0x573ed587
add edi, eax
mov al, byte [esi + 1]
inc esi
test al, al
mov ecx, edi
jne 0x50c8ed
mov eax, ecx
xor eax, edx
xor eax, 0x946a4f
shl eax, 8
add eax, ecx
xor eax, 0x573ed587
add eax, edx
mov edx, dword [0x6314ec]
mov ecx, dword [edx + 0x3c]
mov ebp, eax
xor ebp, 0x62946a4f
xor edx, edx
mov eax, ebp
div dword [ecx]
mov eax, dword [ecx + 4]
mov edi, dword [eax + edx*4]
test edi, edi
je 0x50c9b6
mov esi, dword [edi + 0x10]
mov eax, dword [esp + 0x10]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x50c972
test cl, cl
je 0x50c96e
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x50c972
add eax, 2
add esi, 2
test cl, cl
jne 0x50c94e
xor eax, eax
jmp 0x50c977
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x50c9b0
mov eax, dword [edi + 0x24]
mov eax, dword [eax + 0x10]
mov esi, ebx
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x50c9a7
test cl, cl
je 0x50c9a3
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x50c9a7
add eax, 2
add esi, 2
test cl, cl
jne 0x50c983
xor eax, eax
jmp 0x50c9ac
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x50c9b6
mov edi, dword [edi]
test edi, edi
jne 0x50c947
mov ecx, dword [0x631438]
xor eax, eax
test edi, edi
sete al
add eax, ecx
jne 0x50ca52
push 0x620ad0
call fcn.004e70c0
add esp, 4
push 0x469
push str.C:4017_buildmysql_4.0.17innobasedictdict0dict.c
call sub.KERNEL32.dll_GetCurrentThreadId
push eax
call fcn.004d1950
add esp, 4
push eax
push str.__InnoDB:_Assertion_failure_in_thread__lu_in_file__s_line__lu_n
push 0x620ad0
call fcn.00599e71
push str.InnoDB:_Failing_assertion:_col2__NULL
push 0x620ad0
call fcn.00599e71
push str._nInnoDB:_We_intentionally_generate_a_memory_trap._n
push 0x620ad0
call fcn.00599e71
push str.InnoDB:_Send_a_detailed_bug_report_to_mysql_lists.mysql.com_n
push 0x620ad0
call fcn.00599e71
mov ecx, dword [0x631440]
mov dword [0x63143c], 1
mov eax, dword [ecx]
add esp, 0x2c
test eax, eax
je 0x50ca5b
mov dword [0x631440], 0
jmp 0x50ca5b
mov eax, dword [0x63143c]
test eax, eax
je 0x50ca90
push 0x469
push str.C:4017_buildmysql_4.0.17innobasedictdict0dict.c
call sub.KERNEL32.dll_GetCurrentThreadId
push eax
call fcn.004d1950
add esp, 4
push eax
push str.InnoDB:_Thread__lu_stopped_in_file__s_line__lu_n
push 0x620ad0
call fcn.00599e71
push 0x3b9aca00
call fcn.004e7040
add esp, 0x18
mov esi, dword [esp + 0x1c]
mov dword [esi], 0
mov edx, dword [0x6314ec]
mov ecx, dword [edx + 0x3c]
mov eax, ebp
xor edx, edx
div dword [ecx]
mov eax, dword [ecx + 4]
mov ecx, dword [eax + edx*4]
test ecx, ecx
pop edi
pop ebp
pop ebx
lea eax, [eax + edx*4]
jne 0x50cabe
mov dword [eax], esi
pop esi
pop ecx
ret
mov eax, dword [ecx]
test eax, eax
je 0x50cacc
mov ecx, eax
mov eax, dword [ecx]
test eax, eax
jne 0x50cac4
mov dword [ecx], esi
pop esi
pop ecx
ret