Function at 0x5ef42c
Capabilities:
Encrypt data using blowfish

Disassembly:
test dword [0x7eeab0], 0xfffffe00
jne 0x5ef464
test dword [0x7eeab0], 0xffffff80
jne 0x5ef7e0
test dword [0x7eeab0], 0xffffffff
jne 0x5efb78
call fcn.006a7b4c
jmp fcn.005ef42c
push ebp
mov ebp, esp
and esp, 0xfffffff0
push edi
push esi
push ebx
push edx
push eax
mov eax, 0x1c
call fcn.00697340
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 0x5ef4b2
mov eax, dword [esp]
mov esi, eax
mov ebx, esi
and ebx, 0xf
je 0x5ef4e4
test bl, 3
jne 0x5ef7d7
neg ebx
add ebx, 0x10
shr ebx, 2
xor eax, eax
mov edx, ecx
shl edx, 0xa
mov edi, dword [edx + eax*4 + 0x6d9d60]
mov dword [esi + eax*4], edi
inc eax
cmp eax, ebx
jb 0x5ef4d3
jmp 0x5ef4e9
mov edx, ecx
shl edx, 0xa
mov eax, ebx
neg eax
and eax, 3
neg eax
add eax, 0x100
lea edi, [edx + ebx*4 + 0x6d9d60]
test edi, 0xf
je 0x5ef51d
movdqu xmm0, xmmword [edx + ebx*4 + 0x6d9d60]
movdqa xmmword [esi + ebx*4], xmm0
add ebx, 4
cmp ebx, eax
jb 0x5ef506
jmp 0x5ef532
movdqa xmm0, xmmword [edx + ebx*4 + 0x6d9d60]
movdqa xmmword [esi + ebx*4], xmm0
add ebx, 4
cmp ebx, eax
jb 0x5ef51d
cmp eax, 0x100
jae 0x5ef550
mov edx, ecx
shl edx, 0xa
mov ebx, dword [edx + eax*4 + 0x6d9d60]
mov dword [esi + eax*4], ebx
inc eax
cmp eax, 0x100
jb 0x5ef53e
inc ecx
cmp ecx, 4
jae 0x5ef589
test ecx, ecx
je 0x5ef4af
cmp ecx, 1
je 0x5ef580
cmp ecx, 2
jne 0x5ef571
mov esi, dword [esp + 4]
jmp 0x5ef4b4
cmp ecx, 3
mov eax, dword [esp + 8]
cmove esi, eax
jmp 0x5ef4b4
mov esi, dword [esp + 0x10]
jmp 0x5ef4b4
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 0x5ef5b4
mov esi, 0
shl edi, 8
movzx ebx, byte [esi + edx]
or edi, ebx
inc esi
cmp esi, eax
jl 0x5ef5c7
mov esi, 0
shl edi, 8
movzx ebx, byte [esi + edx]
or edi, ebx
inc esi
cmp esi, eax
jl 0x5ef5da
mov esi, 0
shl edi, 8
movzx ebx, byte [esi + edx]
or edi, ebx
inc esi
cmp esi, eax
jl 0x5ef5ed
mov esi, 0
mov eax, dword [ecx*4 + 0x6dae60]
xor eax, edi
mov ebx, dword [esp + 0x10]
mov dword [ebx + ecx*4 + 0xc00], eax
inc ecx
cmp ecx, 0x12
jb 0x5ef59e
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.005efce8
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.005efce8
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.005efce8
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.005efce8
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.005efce8
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.005efce8
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.005efce8
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.005efce8
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.005efce8
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 0x5ef763
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.005efce8
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 0x5ef775
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
inc edx
cmp edx, 4
jae 0x5ef7cb
test edx, edx
je 0x5ef760
cmp edx, 1
je 0x5ef7c7
cmp edx, 2
jne 0x5ef7bf
mov eax, dword [esp + 4]
jmp 0x5ef765
cmp edx, 3
cmove eax, ecx
jmp 0x5ef765
mov eax, ebx
jmp 0x5ef765
add esp, 0x24
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret 4
xor eax, eax
jmp 0x5ef532
push ebp
mov ebp, esp
and esp, 0xfffffff0
push edi
push esi
push ebx
push edx
push eax
mov eax, 0x1c
call fcn.00697340
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 0x5ef836
mov eax, dword [esp]
mov ebx, eax
mov esi, ebx
and esi, 0xf
je 0x5ef86b
test esi, 3
jne 0x5efb71
neg esi
add esi, 0x10
shr esi, 2
xor edx, edx
mov eax, ecx
shl eax, 0xa
mov edi, dword [eax + edx*4 + 0x6d9d60]
mov dword [ebx + edx*4], edi
inc edx
cmp edx, esi
jb 0x5ef85a
jmp 0x5ef870
mov eax, ecx
shl eax, 0xa
mov edx, esi
neg edx
and edx, 1
neg edx
add edx, 0x100
lea edi, [eax + esi*4 + 0x6d9d60]
test edi, 0xf
je 0x5ef8a8
lea eax, [eax + esi*4]
movq mm0, qword [eax + 0x6d9d60]
movq qword [ebx + esi*4], mm0
add eax, 8
add esi, 2
cmp esi, edx
jb 0x5ef891
jmp 0x5ef8c8
lea eax, [eax + esi*4]
jmp 0x5ef8b2
movq qword [ebx + esi*4 - 8], mm0
movq mm0, qword [eax + 0x6d9d60]
add eax, 8
add esi, 2
cmp esi, edx
jb 0x5ef8ad
movq qword [ebx + esi*4 - 8], mm0
emms
cmp edx, 0x100
jae 0x5ef8ea
mov eax, ecx
shl eax, 0xa
mov esi, dword [eax + edx*4 + 0x6d9d60]
mov dword [ebx + edx*4], esi
inc edx
cmp edx, 0x100
jb 0x5ef8d7
inc ecx
cmp ecx, 4
jae 0x5ef923
test ecx, ecx
je 0x5ef833
cmp ecx, 1
je 0x5ef91a
cmp ecx, 2
jne 0x5ef90b
mov ebx, dword [esp + 4]
jmp 0x5ef838
cmp ecx, 3
mov eax, dword [esp + 8]
cmove ebx, eax
jmp 0x5ef838
mov ebx, dword [esp + 0x10]
jmp 0x5ef838
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 0x5ef94e
mov esi, 0
shl edi, 8
movzx ebx, byte [esi + edx]
or edi, ebx
inc esi
cmp esi, eax
jl 0x5ef961
mov esi, 0
shl edi, 8
movzx ebx, byte [esi + edx]
or edi, ebx
inc esi
cmp esi, eax
jl 0x5ef974
mov esi, 0
shl edi, 8
movzx ebx, byte [esi + edx]
or edi, ebx
inc esi
cmp esi, eax
jl 0x5ef987
mov esi, 0
mov eax, dword [ecx*4 + 0x6dae60]
xor eax, edi
mov ebx, dword [esp + 0x10]
mov dword [ebx + ecx*4 + 0xc00], eax
inc ecx
cmp ecx, 0x12
jb 0x5ef938
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.005efce8
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.005efce8
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.005efce8
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.005efce8
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.005efce8
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.005efce8
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.005efce8
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.005efce8
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.005efce8
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 0x5efafd
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.005efce8
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 0x5efb0f
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
inc edx
cmp edx, 4
jae 0x5efb65
test edx, edx
je 0x5efafa
cmp edx, 1
je 0x5efb61
cmp edx, 2
jne 0x5efb59
mov eax, dword [esp + 4]
jmp 0x5efaff
cmp edx, 3
cmove eax, ecx
jmp 0x5efaff
mov eax, ebx
jmp 0x5efaff
add esp, 0x24
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret 4
xor edx, edx
jmp 0x5ef8ca
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 + 0x6da160]
mov dword [edx + ebx*4 + 0x400], ecx
inc ebx
jne 0x5efba7
mov ecx, dword [esp + 8]
inc eax
cmp eax, 4
jge 0x5efbe5
test eax, eax
je 0x5efb93
cmp eax, 1
je 0x5efbe1
cmp eax, 2
jne 0x5efbd8
lea edx, [ecx + 0xc48]
jmp 0x5efb99
cmp eax, 3
jne 0x5efb99
mov edx, edi
jmp 0x5efb99
mov edx, ecx
jmp 0x5efb99
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 0x5efc0e
mov edi, 0
inc esi
jne 0x5efbfa
mov ecx, dword [esp + 8]
mov esi, dword [eax*4 + 0x6daea8]
xor esi, ebx
mov dword [ecx + eax*4 + 0xc48], esi
inc eax
jne 0x5efbf1
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.005efce8
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 0x5efc40
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.005efce8
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 0x5efc83
mov edx, dword [esp + 8]
mov eax, dword [esp]
mov ecx, dword [esp + 4]
inc eax
cmp eax, 4
jge 0x5efcdb
test eax, eax
je 0x5efc6e
cmp eax, 1
je 0x5efcd7
cmp eax, 2
jne 0x5efcce
lea edx, [ebx + 0xc48]
jmp 0x5efc74
cmp eax, 3
jne 0x5efc74
mov edx, ecx
jmp 0x5efc74
mov edx, ebx
jmp 0x5efc74
add esp, 0x14
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret 4