Function at 0x5ee418
Capabilities:
Encrypt data using blowfish

Disassembly:
test dword [0x7eda90], 0xfffffe00
jne 0x5ee450
test dword [0x7eda90], 0xffffff80
jne 0x5ee7cc
test dword [0x7eda90], 0xffffffff
jne 0x5eeb64
call fcn.006a6b5c
jmp fcn.005ee418
push ebp
mov ebp, esp
and esp, 0xfffffff0
push edi
push esi
push ebx
push edx
push eax
mov eax, 0x1c
call fcn.00696350
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
mov ebx, ecx
xor ecx, ecx
lea esi, [ebx + 0x400]
mov dword [esp], esi
lea esi, [ebx + 0x800]
mov dword [esp + 8], esi
lea esi, [ebx + 0xc48]
mov dword [esp + 4], esi
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], edx
mov eax, dword [esp]
jmp 0x5ee49e
mov eax, dword [esp]
mov esi, eax
mov ebx, esi
and ebx, 0xf
je 0x5ee4d0
test bl, 3
jne 0x5ee7c3
neg ebx
add ebx, 0x10
shr ebx, 2
xor eax, eax
mov edx, ecx
shl edx, 0xa
mov edi, dword [edx + eax*4 + 0x6d8bc0]
mov dword [esi + eax*4], edi
inc eax
cmp eax, ebx
jb 0x5ee4bf
jmp 0x5ee4d5
mov edx, ecx
shl edx, 0xa
mov eax, ebx
neg eax
and eax, 3
neg eax
add eax, 0x100
lea edi, [edx + ebx*4 + 0x6d8bc0]
test edi, 0xf
je 0x5ee509
movdqu xmm0, xmmword [edx + ebx*4 + 0x6d8bc0]
movdqa xmmword [esi + ebx*4], xmm0
add ebx, 4
cmp ebx, eax
jb 0x5ee4f2
jmp 0x5ee51e
movdqa xmm0, xmmword [edx + ebx*4 + 0x6d8bc0]
movdqa xmmword [esi + ebx*4], xmm0
add ebx, 4
cmp ebx, eax
jb 0x5ee509
cmp eax, 0x100
jae 0x5ee53c
mov edx, ecx
shl edx, 0xa
mov ebx, dword [edx + eax*4 + 0x6d8bc0]
mov dword [esi + eax*4], ebx
inc eax
cmp eax, 0x100
jb 0x5ee52a
inc ecx
cmp ecx, 4
jae 0x5ee575
test ecx, ecx
je 0x5ee49b
cmp ecx, 1
je 0x5ee56c
cmp ecx, 2
jne 0x5ee55d
mov esi, dword [esp + 4]
jmp 0x5ee4a0
cmp ecx, 3
mov eax, dword [esp + 8]
cmove esi, eax
jmp 0x5ee4a0
mov esi, dword [esp + 0x10]
jmp 0x5ee4a0
mov eax, dword [ebp + 8]
mov ebx, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
xor edi, edi
xor esi, esi
xor ecx, ecx
mov dword [esp + 0x10], ebx
shl edi, 8
movzx ebx, byte [esi + edx]
or edi, ebx
inc esi
mov eax, dword [ebp + 8]
cmp esi, eax
jl 0x5ee5a0
mov esi, 0
shl edi, 8
movzx ebx, byte [esi + edx]
or edi, ebx
inc esi
cmp esi, eax
jl 0x5ee5b3
mov esi, 0
shl edi, 8
movzx ebx, byte [esi + edx]
or edi, ebx
inc esi
cmp esi, eax
jl 0x5ee5c6
mov esi, 0
shl edi, 8
movzx ebx, byte [esi + edx]
or edi, ebx
inc esi
cmp esi, eax
jl 0x5ee5d9
mov esi, 0
mov eax, dword [ecx*4 + 0x6d9cc0]
xor eax, edi
mov ebx, dword [esp + 0x10]
mov dword [ebx + ecx*4 + 0xc00], eax
inc ecx
cmp ecx, 0x12
jb 0x5ee58a
xor eax, eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], eax
lea esi, [esp + 0x18]
push esi
mov ecx, ebx
lea edx, [esp + 0x18]
call fcn.005eecd4
mov eax, dword [esp + 0x14]
mov dword [ebx + 0xc00], eax
mov esi, dword [esp + 0x18]
mov dword [ebx + 0xc04], esi
lea edi, [esp + 0x18]
push edi
mov ecx, ebx
lea edx, [esp + 0x18]
call fcn.005eecd4
mov eax, dword [esp + 0x14]
mov dword [ebx + 0xc08], eax
mov esi, dword [esp + 0x18]
mov dword [ebx + 0xc0c], esi
lea edi, [esp + 0x18]
push edi
mov ecx, ebx
lea edx, [esp + 0x18]
call fcn.005eecd4
mov eax, dword [esp + 0x14]
mov dword [ebx + 0xc10], eax
mov esi, dword [esp + 0x18]
mov dword [ebx + 0xc14], esi
lea edi, [esp + 0x18]
push edi
mov ecx, ebx
lea edx, [esp + 0x18]
call fcn.005eecd4
mov eax, dword [esp + 0x14]
mov dword [ebx + 0xc18], eax
mov esi, dword [esp + 0x18]
mov dword [ebx + 0xc1c], esi
lea edi, [esp + 0x18]
push edi
mov ecx, ebx
lea edx, [esp + 0x18]
call fcn.005eecd4
mov eax, dword [esp + 0x14]
mov dword [ebx + 0xc20], eax
mov esi, dword [esp + 0x18]
mov dword [ebx + 0xc24], esi
lea edi, [esp + 0x18]
push edi
mov ecx, ebx
lea edx, [esp + 0x18]
call fcn.005eecd4
mov eax, dword [esp + 0x14]
mov dword [ebx + 0xc28], eax
mov esi, dword [esp + 0x18]
mov dword [ebx + 0xc2c], esi
lea edi, [esp + 0x18]
push edi
mov ecx, ebx
lea edx, [esp + 0x18]
call fcn.005eecd4
mov eax, dword [esp + 0x14]
mov dword [ebx + 0xc30], eax
mov esi, dword [esp + 0x18]
mov dword [ebx + 0xc34], esi
lea edi, [esp + 0x18]
push edi
mov ecx, ebx
lea edx, [esp + 0x18]
call fcn.005eecd4
mov eax, dword [esp + 0x14]
mov dword [ebx + 0xc38], eax
mov esi, dword [esp + 0x18]
mov dword [ebx + 0xc3c], esi
lea edi, [esp + 0x18]
push edi
mov ecx, ebx
lea edx, [esp + 0x18]
call fcn.005eecd4
mov eax, dword [esp + 0x14]
mov dword [ebx + 0xc40], eax
mov edx, dword [esp + 0x18]
mov dword [ebx + 0xc44], edx
xor edx, edx
mov ecx, dword [esp + 8]
mov esi, dword [esp]
jmp 0x5ee74f
mov esi, dword [esp]
mov eax, esi
mov edi, eax
lea esi, [eax + 0x400]
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], eax
lea eax, [esp + 0x18]
push eax
mov ecx, ebx
lea edx, [esp + 0x18]
call fcn.005eecd4
mov eax, dword [esp + 0x14]
mov dword [edi], eax
mov edx, dword [esp + 0x18]
mov dword [edi + 4], edx
add edi, 8
cmp esi, edi
ja 0x5ee761
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
inc edx
cmp edx, 4
jae 0x5ee7b7
test edx, edx
je 0x5ee74c
cmp edx, 1
je 0x5ee7b3
cmp edx, 2
jne 0x5ee7ab
mov eax, dword [esp + 4]
jmp 0x5ee751
cmp edx, 3
cmove eax, ecx
jmp 0x5ee751
mov eax, ebx
jmp 0x5ee751
add esp, 0x24
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret 4
xor eax, eax
jmp 0x5ee51e
push ebp
mov ebp, esp
and esp, 0xfffffff0
push edi
push esi
push ebx
push edx
push eax
mov eax, 0x1c
call fcn.00696350
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
mov ebx, ecx
xor ecx, ecx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], ecx
lea esi, [ebx + 0x400]
mov dword [esp], esi
lea esi, [ebx + 0x800]
mov dword [esp + 8], esi
lea esi, [ebx + 0xc48]
mov dword [esp + 4], esi
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], edx
mov eax, dword [esp]
jmp 0x5ee822
mov eax, dword [esp]
mov ebx, eax
mov esi, ebx
and esi, 0xf
je 0x5ee857
test esi, 3
jne 0x5eeb5d
neg esi
add esi, 0x10
shr esi, 2
xor edx, edx
mov eax, ecx
shl eax, 0xa
mov edi, dword [eax + edx*4 + 0x6d8bc0]
mov dword [ebx + edx*4], edi
inc edx
cmp edx, esi
jb 0x5ee846
jmp 0x5ee85c
mov eax, ecx
shl eax, 0xa
mov edx, esi
neg edx
and edx, 1
neg edx
add edx, 0x100
lea edi, [eax + esi*4 + 0x6d8bc0]
test edi, 0xf
je 0x5ee894
lea eax, [eax + esi*4]
movq mm0, qword [eax + 0x6d8bc0]
movq qword [ebx + esi*4], mm0
add eax, 8
add esi, 2
cmp esi, edx
jb 0x5ee87d
jmp 0x5ee8b4
lea eax, [eax + esi*4]
jmp 0x5ee89e
movq qword [ebx + esi*4 - 8], mm0
movq mm0, qword [eax + 0x6d8bc0]
add eax, 8
add esi, 2
cmp esi, edx
jb 0x5ee899
movq qword [ebx + esi*4 - 8], mm0
emms
cmp edx, 0x100
jae 0x5ee8d6
mov eax, ecx
shl eax, 0xa
mov esi, dword [eax + edx*4 + 0x6d8bc0]
mov dword [ebx + edx*4], esi
inc edx
cmp edx, 0x100
jb 0x5ee8c3
inc ecx
cmp ecx, 4
jae 0x5ee90f
test ecx, ecx
je 0x5ee81f
cmp ecx, 1
je 0x5ee906
cmp ecx, 2
jne 0x5ee8f7
mov ebx, dword [esp + 4]
jmp 0x5ee824
cmp ecx, 3
mov eax, dword [esp + 8]
cmove ebx, eax
jmp 0x5ee824
mov ebx, dword [esp + 0x10]
jmp 0x5ee824
mov eax, dword [ebp + 8]
mov ebx, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
xor edi, edi
xor esi, esi
xor ecx, ecx
mov dword [esp + 0x10], ebx
shl edi, 8
movzx ebx, byte [esi + edx]
or edi, ebx
inc esi
mov eax, dword [ebp + 8]
cmp esi, eax
jl 0x5ee93a
mov esi, 0
shl edi, 8
movzx ebx, byte [esi + edx]
or edi, ebx
inc esi
cmp esi, eax
jl 0x5ee94d
mov esi, 0
shl edi, 8
movzx ebx, byte [esi + edx]
or edi, ebx
inc esi
cmp esi, eax
jl 0x5ee960
mov esi, 0
shl edi, 8
movzx ebx, byte [esi + edx]
or edi, ebx
inc esi
cmp esi, eax
jl 0x5ee973
mov esi, 0
mov eax, dword [ecx*4 + 0x6d9cc0]
xor eax, edi
mov ebx, dword [esp + 0x10]
mov dword [ebx + ecx*4 + 0xc00], eax
inc ecx
cmp ecx, 0x12
jb 0x5ee924
xor eax, eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], eax
lea esi, [esp + 0x18]
push esi
mov ecx, ebx
lea edx, [esp + 0x18]
call fcn.005eecd4
mov eax, dword [esp + 0x14]
mov dword [ebx + 0xc00], eax
mov esi, dword [esp + 0x18]
mov dword [ebx + 0xc04], esi
lea edi, [esp + 0x18]
push edi
mov ecx, ebx
lea edx, [esp + 0x18]
call fcn.005eecd4
mov eax, dword [esp + 0x14]
mov dword [ebx + 0xc08], eax
mov esi, dword [esp + 0x18]
mov dword [ebx + 0xc0c], esi
lea edi, [esp + 0x18]
push edi
mov ecx, ebx
lea edx, [esp + 0x18]
call fcn.005eecd4
mov eax, dword [esp + 0x14]
mov dword [ebx + 0xc10], eax
mov esi, dword [esp + 0x18]
mov dword [ebx + 0xc14], esi
lea edi, [esp + 0x18]
push edi
mov ecx, ebx
lea edx, [esp + 0x18]
call fcn.005eecd4
mov eax, dword [esp + 0x14]
mov dword [ebx + 0xc18], eax
mov esi, dword [esp + 0x18]
mov dword [ebx + 0xc1c], esi
lea edi, [esp + 0x18]
push edi
mov ecx, ebx
lea edx, [esp + 0x18]
call fcn.005eecd4
mov eax, dword [esp + 0x14]
mov dword [ebx + 0xc20], eax
mov esi, dword [esp + 0x18]
mov dword [ebx + 0xc24], esi
lea edi, [esp + 0x18]
push edi
mov ecx, ebx
lea edx, [esp + 0x18]
call fcn.005eecd4
mov eax, dword [esp + 0x14]
mov dword [ebx + 0xc28], eax
mov esi, dword [esp + 0x18]
mov dword [ebx + 0xc2c], esi
lea edi, [esp + 0x18]
push edi
mov ecx, ebx
lea edx, [esp + 0x18]
call fcn.005eecd4
mov eax, dword [esp + 0x14]
mov dword [ebx + 0xc30], eax
mov esi, dword [esp + 0x18]
mov dword [ebx + 0xc34], esi
lea edi, [esp + 0x18]
push edi
mov ecx, ebx
lea edx, [esp + 0x18]
call fcn.005eecd4
mov eax, dword [esp + 0x14]
mov dword [ebx + 0xc38], eax
mov esi, dword [esp + 0x18]
mov dword [ebx + 0xc3c], esi
lea edi, [esp + 0x18]
push edi
mov ecx, ebx
lea edx, [esp + 0x18]
call fcn.005eecd4
mov eax, dword [esp + 0x14]
mov dword [ebx + 0xc40], eax
mov edx, dword [esp + 0x18]
mov dword [ebx + 0xc44], edx
xor edx, edx
mov ecx, dword [esp + 8]
mov esi, dword [esp]
jmp 0x5eeae9
mov esi, dword [esp]
mov eax, esi
mov edi, eax
lea esi, [eax + 0x400]
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], eax
lea eax, [esp + 0x18]
push eax
mov ecx, ebx
lea edx, [esp + 0x18]
call fcn.005eecd4
mov eax, dword [esp + 0x14]
mov dword [edi], eax
mov edx, dword [esp + 0x18]
mov dword [edi + 4], edx
add edi, 8
cmp esi, edi
ja 0x5eeafb
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
inc edx
cmp edx, 4
jae 0x5eeb51
test edx, edx
je 0x5eeae6
cmp edx, 1
je 0x5eeb4d
cmp edx, 2
jne 0x5eeb45
mov eax, dword [esp + 4]
jmp 0x5eeaeb
cmp edx, 3
cmove eax, ecx
jmp 0x5eeaeb
mov eax, ebx
jmp 0x5eeaeb
add esp, 0x24
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret 4
xor edx, edx
jmp 0x5ee8b6
push ebp
mov ebp, esp
and esp, 0xfffffff0
push edi
push esi
push ebx
sub esp, 0x14
xor eax, eax
lea edi, [ecx + 0x800]
mov dword [esp + 4], edi
mov dword [esp], edx
lea edx, [ecx + 0x400]
mov esi, eax
shl esi, 0xa
mov ebx, 0xffffff00
mov dword [esp + 8], ecx
mov ecx, dword [esi + ebx*4 + 0x6d8fc0]
mov dword [edx + ebx*4 + 0x400], ecx
inc ebx
jne 0x5eeb93
mov ecx, dword [esp + 8]
inc eax
cmp eax, 4
jge 0x5eebd1
test eax, eax
je 0x5eeb7f
cmp eax, 1
je 0x5eebcd
cmp eax, 2
jne 0x5eebc4
lea edx, [ecx + 0xc48]
jmp 0x5eeb85
cmp eax, 3
jne 0x5eeb85
mov edx, edi
jmp 0x5eeb85
mov edx, ecx
jmp 0x5eeb85
mov edx, dword [esp]
xor ebx, ebx
xor edi, edi
mov eax, 0xffffffee
mov esi, 0xfffffffc
mov dword [esp + 8], ecx
shl ebx, 8
movzx ecx, byte [edi + edx]
or ebx, ecx
inc edi
cmp edi, dword [ebp + 8]
jl 0x5eebfa
mov edi, 0
inc esi
jne 0x5eebe6
mov ecx, dword [esp + 8]
mov esi, dword [eax*4 + 0x6d9d08]
xor esi, ebx
mov dword [ecx + eax*4 + 0xc48], esi
inc eax
jne 0x5eebdd
xor eax, eax
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], eax
lea ebx, [ecx + 0xc00]
lea edi, [ecx + 0xc48]
mov esi, ecx
lea eax, [esp + 0x10]
push eax
mov ecx, esi
lea edx, [esp + 0x10]
call fcn.005eecd4
mov eax, dword [esp + 0xc]
mov dword [ebx], eax
mov edx, dword [esp + 0x10]
mov dword [ebx + 4], edx
add ebx, 8
cmp edi, ebx
ja 0x5eec2c
mov ecx, esi
xor eax, eax
mov ebx, ecx
mov ecx, dword [esp + 4]
lea edx, [ebx + 0x400]
mov edi, edx
lea esi, [edx + 0x400]
mov dword [esp + 8], edx
mov dword [esp], eax
lea eax, [esp + 0x10]
push eax
mov ecx, ebx
lea edx, [esp + 0x10]
call fcn.005eecd4
mov eax, dword [esp + 0xc]
mov dword [edi], eax
mov edx, dword [esp + 0x10]
mov dword [edi + 4], edx
add edi, 8
cmp esi, edi
ja 0x5eec6f
mov edx, dword [esp + 8]
mov eax, dword [esp]
mov ecx, dword [esp + 4]
inc eax
cmp eax, 4
jge 0x5eecc7
test eax, eax
je 0x5eec5a
cmp eax, 1
je 0x5eecc3
cmp eax, 2
jne 0x5eecba
lea edx, [ebx + 0xc48]
jmp 0x5eec60
cmp eax, 3
jne 0x5eec60
mov edx, ecx
jmp 0x5eec60
mov edx, ebx
jmp 0x5eec60
add esp, 0x14
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret 4