Function at 0x121fe1f
Capabilities:
Encrypt data using blowfish

Disassembly:
mov eax, dword [ebp - 0x14]
add eax, 1
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 4
jge 0x121ff1b
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x20], ecx
cmp dword [ebp - 0x20], 3
ja case.default.0x121fe18
mov edx, dword [ebp - 0x20]
jmp dword [edx*4 + 0x12201a4]
and esi, esi
je 0x121fe23
or ecx, ecx
add ebx, 0
jne 0x121fe36
jg 0x121fe2c
jne 0x121fe2e
jns 0x121fe30
xchg esp, esp
je 0x121fe36
add eax, 0x8458b75
mov eax, dword [ebp + 8]
add eax, 0x400
mov dword [ebp - 0xc], eax
jmp case.default.0x121fe18
jne 0x121fe45
and esp, 0xffffffff
lea ecx, [ecx]
jae 0x121fe54
nop
mov esi, esi
je 0x121fe51
jb 0x121fe54
mov edx, 0x89084d8b
dec ebp
hlt
mov ecx, dword [ebp + 8]
mov dword [ebp - 0xc], ecx
jmp case.default.0x121fe18
jbe 0x121fe5e
je 0x121fe60
mov edx, edx
and esi, esi
jo 0x121fe8e
pushf
call fcn.0121fe6d
add esp, 4
xor edx, 0x7b7f
xor edx, 0x7b7f
add edx, 0
cmp edx, 0x8b1
popf
mov edx, edx
lea edi, [edi]
jno 0x121fe8e
mov esp, 0x8108558b
ret 0xc48
mov edx, dword [ebp + 8]
add edx, 0xc48
mov dword [ebp - 0xc], edx
jmp case.default.0x121fe18
cmp eax, dword [esp]
test dword [esp], eax
xor edi, 0
jnp 0x121feb4
pushf
inc edx
dec edx
jo 0x121fead
popf
jo 0x121feb1
jp 0x121feb4
mov ebx, 0x508458b
add byte [eax], cl
add byte [eax], al
mov eax, dword [ebp + 8]
add eax, 0x800
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x18], 0
jmp 0x121fed1
mov ecx, dword [ebp - 0x18]
add ecx, 1
mov dword [ebp - 0x18], ecx
cmp dword [ebp - 0x18], 0x100
jge 0x121ff16
xor esi, 0x2540
xor esi, 0x2540
jg 0x121fefb
pushf
test dword [esp], ecx
add esp, 0
popf
xchg esp, esp
jl 0x121fef6
mov esp, esp
jle 0x121fefb
mov ecx, 0xc1ec558b
loop 0x121ff0b
mov edx, dword [ebp - 0x14]
shl edx, 0xa
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0xc]
mov esi, dword [ebp - 0x18]
mov edx, dword [edx + esi*4 + 0x12032b8]
mov dword [ecx + eax*4], edx
jmp 0x121fec8
xchg esp, eax
mov dl, 0xb8
xor ah, byte [eax]
add dword [ecx - 0x4d147eec], ecx
jmp 0x121fdf2
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x14], 0
jmp 0x121ff34
mov eax, dword [ebp - 0x14]
add eax, 1
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0x12
jge 0x121ffb8
mov dword [ebp - 0x18], 0
jmp 0x121ff4c
mov ecx, dword [ebp - 0x18]
add ecx, 1
mov dword [ebp - 0x18], ecx
cmp dword [ebp - 0x18], 4
jge 0x121ff87
mov edx, dword [ebp - 8]
shl edx, 8
mov dword [ebp - 8], edx
mov eax, dword [ebp + 0xc]
add eax, dword [ebp - 0x1c]
xor ecx, ecx
mov cl, byte [eax]
mov edx, dword [ebp - 8]
or edx, ecx
mov dword [ebp - 8], edx
mov eax, dword [ebp - 0x1c]
add eax, 1
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [ebp + 0x10]
jl 0x121ff85
mov dword [ebp - 0x1c], 0
jmp 0x121ff43
jae 0x121ff89
jno 0x121ff99
pushf
cmc
and ebx, ebx
popf
xchg edx, edx
xchg esp, esp
jo 0x121ff99
add eax, 0x8bec558b
add al, 0x95
add al, 0x48
and byte [ecx], al
mov edx, dword [ebp - 0x14]
mov eax, dword [edx*4 + 0x1204804]
xor eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp + 8]
mov dword [edx + ecx*4 + 0xc00], eax
jmp 0x121ff2b
test dword [esp + 4], esi
lea esi, [esi]
jno 0x121ffc0
jb 0x121ffd0
pushf
ror esp, 0
popf
jns 0x121ffcb
jno 0x121ffcd
jae 0x121ffd0
add edi, 0xfc45
add byte [eax], al
mov dword [ebp - 4], 0
stc
xchg esi, eax
xchg esi, eax
ror ebx, 0
jne 0x121fff3
pushf
not ebx
not ebx
cld
cmp esp, 0x5f82
popf
jno 0x121fff0
je 0x121fff3
sub eax, 0xf045c7
add byte [eax], al
add bh, al
inc ebp
in al, dx
add byte [eax], al
add byte [eax], al
mov dword [ebp - 0x10], 0
mov dword [ebp - 0x14], 0
jmp 0x122000c
mov eax, dword [ebp - 0x14]
add eax, 2
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0x12
jge 0x1220057
xchg edx, edx
xchg ebx, edx
xchg ebx, edx
mov eax, eax
jge 0x1220021
jle 0x122001e
jl 0x1220021
mov ebp, 0x51f04d8d
lea ecx, [ebp - 0x10]
push ecx
lea edx, [ebp - 4]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.0121fa9d
add esp, 0xc
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 4]
mov dword [edx + ecx*4 + 0xc00], eax
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0x10]
mov dword [edx + ecx*4 + 0xc04], eax
jmp 0x1220003
mov dword [ebp - 0x14], 0
jmp 0x1220069
mov ecx, dword [ebp - 0x14]
add ecx, 1
mov dword [ebp - 0x14], ecx
cmp dword [ebp - 0x14], 4
jge 0x1220199
mov edx, dword [ebp - 0x14]
mov dword [ebp - 0x24], edx
cmp dword [ebp - 0x24], 3
ja case.default.0x1220086
mov eax, dword [ebp - 0x24]
jmp dword [eax*4 + 0x12201b4]
mov esp, esp
jmp 0x1220091
mov ebx, ebx
je 0x12200ac
pushf
test dword [esp], esi
shl esp, 0
neg ebx
neg ebx
popf
jns 0x12200a5
je 0x12200a7
lea esi, [esi]
jne 0x12200ac
sub eax, 0x81084d8b
rol dword [eax], 4
add byte [eax], al
mov ecx, dword [ebp + 8]
add ecx, 0x400
mov dword [ebp - 0xc], ecx
jmp case.default.0x1220086
jg 0x12200bc
shl ecx, 0
or esp, 0
jnp 0x12200c4
jge 0x12200d4
pushf
lea edi, [edi]
ror esp, 0
popf
jl 0x12200d1
jl 0x12200d4
xor eax, 0x8908558b
push ebp
hlt
mov edx, dword [ebp + 8]
mov dword [ebp - 0xc], edx
jmp case.default.0x1220086
xor ecx, dword [esp]
xor ecx, dword [esp]
jns 0x12200f0
jae 0x12200e6
xchg esp, esp
jg 0x12200ea
jge 0x12200ec
js 0x12200f0
ljmp 0x4805:0x8458bd7
mov eax, dword [ebp + 8]
add eax, 0xc48
mov dword [ebp - 0xc], eax
jmp case.default.0x1220086
test ecx, esi
nop
jne 0x1220108
nop
jmp 0x1220105
je 0x1220108
lcall 0xc1, 0x81084d8b
or byte [eax], al
add byte [ecx + 0x45c7f44d], cl
mov dword [ebp - 0x18], 0
mov ecx, dword [ebp + 8]
add ecx, 0x800
mov dword [ebp - 0xc], ecx
mov dword [ebp - 0x18], 0
jmp 0x1220126
mov edx, dword [ebp - 0x18]
add edx, 2
mov dword [ebp - 0x18], edx
cmp dword [ebp - 0x18], 0x100
jge 0x1220194
lea eax, [ebp - 0x10]
push eax
lea ecx, [ebp - 4]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.0121fa9d
add esp, 0xc
xor ebx, dword [esp]
xor ebx, dword [esp]
xor ebx, dword [esp]
xor ebx, dword [esp]
jns 0x1220165
pushf
add esp, 0
xor ecx, edi
xor ecx, edi
popf
lea ebx, [ebx]
xchg esp, esp
ja 0x1220162
js 0x1220165
mov ecx, 0x8be8458b
dec ebp
hlt
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 4]
mov dword [ecx + eax*4], edx
nop
test esp, 0xcb4
cld
jns 0x1220185
js 0x122017d
jle 0x122017f
je 0x1220181
js 0x1220185
mov esp, 0xe8458b9e
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 0x10]
mov dword [ecx + eax*4 + 4], edx
jmp 0x122011d
jmp 0x1220060
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc