Function at 0x552580
Capabilities:
Encode data using xor

Disassembly:
push ebx
push ebp
mov ebp, dword [esp + 0xc]
push esi
mov esi, dword [ebp + 0x30]
xor ecx, ecx
test esi, esi
push edi
je 0x552594
mov ecx, dword [esi + 8]
mov eax, dword [ebp + 0x28]
cmp eax, 0x14c
jne 0x5525c7
test esi, esi
je 0x5525b5
lea eax, [esi + 0xc]
push eax
call fcn.00512c20
mov esi, dword [esi + 8]
add esp, 4
test esi, esi
jne 0x5525a2
push 0x5db580
call fcn.0059a00d
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
ret
cmp eax, 0x14d
jne 0x5526ca
mov ecx, dword [esi + 0xc]
cmp byte [ecx], 0
jne 0x5525e7
push str.SQL_assertion_fails_in_a_stored_procedure__n
call fcn.0059a00d
add esp, 4
mov edx, dword [esi + 0xc]
mov ecx, dword [0x631438]
xor eax, eax
mov al, byte [edx]
add eax, ecx
jne 0x552683
push 0x620ad0
call fcn.004e70c0
add esp, 4
push 0x142
push 0x614ea0
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:_eval_node_get_ibool_val_arg1_
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 0x552690
mov dword [0x631440], 0
jmp 0x552690
mov eax, dword [0x63143c]
test eax, eax
je 0x55290b
push 0x142
push 0x614ea0
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
pop edi
pop esi
pop ebp
pop ebx
ret
cmp eax, 0x14e
jne 0x5527c6
mov eax, dword [esi + 0xc]
xor edx, edx
mov dl, byte [eax]
mov edi, dword [0x614e9c]
mov esi, edx
xor edx, edx
mov dl, byte [eax + 1]
shl esi, 8
add esi, edx
xor edx, edx
mov dl, byte [eax + 2]
shl esi, 8
add esi, edx
xor edx, edx
mov dl, byte [eax + 3]
mov eax, dword [ecx + 0xc]
xor ecx, ecx
mov cl, byte [eax]
shl esi, 8
add esi, edx
xor edx, edx
mov dl, byte [eax + 1]
shl ecx, 8
add ecx, edx
xor edx, edx
mov dl, byte [eax + 2]
shl ecx, 8
add ecx, edx
xor edx, edx
mov dl, byte [eax + 3]
shl ecx, 8
add ecx, edx
cmp ecx, esi
jbe 0x55273a
sub ecx, esi
inc ecx
xor edx, edx
mov eax, edi
div ecx
mov ebx, edx
add ebx, esi
jmp 0x55273c
mov ebx, esi
imul edi, edi, 0x723c79d
add edi, 0x78eb309
xor edi, 0xb2fc09e
mov ecx, edi
shr ecx, 0xc
imul ecx, ecx, 0x51b8497
lea eax, [edi + edi*2]
shl eax, 4
sub eax, edi
lea eax, [eax + eax*4]
lea edx, [eax + eax*4]
shl edx, 0x14
lea eax, [ecx + edx + 0x3c8e906]
xor eax, 0x88e3703
mov ecx, eax
imul eax, eax, 0x5700000
shr ecx, 0xc
imul ecx, ecx, 0x901dfa9
sub ecx, eax
add ecx, 0x5e34832
mov dword [0x614e9c], ecx
mov eax, dword [ebp + 0xc]
test eax, eax
jne 0x5527a7
push 4
push ebp
call fcn.00551850
add esp, 8
mov edx, ebx
shr edx, 0x18
pop edi
mov byte [eax], dl
mov ecx, ebx
mov edx, ebx
pop esi
shr ecx, 0x10
shr edx, 8
pop ebp
mov byte [eax + 3], bl
mov byte [eax + 1], cl
mov byte [eax + 2], dl
pop ebx
ret
cmp eax, 0x14f
jne 0x552898
mov esi, dword [esi + 0xc]
mov ebx, dword [ebp + 0xc]
xor eax, eax
mov al, byte [esi + 1]
xor ecx, ecx
mov cl, byte [esi]
xor edx, edx
mov dl, byte [esi + 2]
mov edi, eax
xor eax, eax
mov al, byte [esi + 3]
shl ecx, 8
add edi, ecx
shl edi, 8
add edi, edx
shl edi, 8
add edi, eax
test ebx, ebx
mov dword [ebp + 0x10], edi
je 0x552807
cmp dword [ebp + 0x24], edi
jae 0x552813
push edi
push ebp
call fcn.00551850
add esp, 8
mov ebx, eax
xor esi, esi
test edi, edi
jbe 0x55290b
mov eax, dword [0x614e9c]
xor edx, edx
mov ecx, 3
div ecx
add dl, 0x61
mov byte [ebx + esi], dl
mov eax, dword [0x614e9c]
imul eax, eax, 0x723c79d
add eax, 0x78eb309
xor eax, 0xb2fc09e
mov edx, eax
lea ecx, [eax + eax*2]
shl ecx, 4
sub ecx, eax
shr edx, 0xc
imul edx, edx, 0x51b8497
lea eax, [ecx + ecx*4]
lea eax, [eax + eax*4]
shl eax, 0x14
lea eax, [edx + eax + 0x3c8e906]
xor eax, 0x88e3703
mov ecx, eax
imul eax, eax, 0x5700000
shr ecx, 0xc
imul ecx, ecx, 0x901dfa9
sub ecx, eax
add ecx, 0x5e34832
inc esi
cmp esi, edi
mov eax, ecx
mov dword [0x614e9c], eax
jb 0x552822
pop edi
pop esi
pop ebp
pop ebx
ret
push 0x620ad0
call fcn.004e70c0
add esp, 4
push 0x165
push 0x614ea0
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:_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 edx, dword [0x631440]
mov dword [0x63143c], 1
mov eax, dword [edx]
push eax
push 0x5f45ec
call fcn.0059a00d
add esp, 0x2c
pop edi
pop esi
pop ebp
pop ebx
ret