Function at 0x52ade3
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 0x52ae5a
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x20], ecx
cmp dword [ebp - 0x20], 3
ja case.default.0x52ad7e
mov edx, dword [ebp - 0x20]
jmp dword [edx*4 + 0x52b0d2]
rol edx, 0xb
ror edx, 0xb
je 0x52ad98
ja 0x52ad8f
lea ebx, [ebx]
mov edx, edx
jnp 0x52ad95
jne 0x52ad98
mov ecx, 0x508458b
add byte [eax + eax], al
add byte [ecx + 0x6bebf445], cl
mov eax, dword [ebp + 8]
add eax, 0x400
mov dword [ebp - 0xc], eax
jmp case.default.0x52ad7e
shr eax, 0
call fcn.0052adad
lea esp, [esp + 4]
jns 0x52adbb
nop
jp 0x52adb6
lea eax, [eax]
js 0x52adbb
or dword [ebx + 0x4d89084d], 0x794debf4
add byte [ebx + 0xb7000c2], al
mov ecx, dword [ebp + 8]
mov dword [ebp - 0xc], ecx
jmp case.default.0x52ad7e
jns 0x52adc5
add edx, 0
jo 0x52add5
jnp 0x52adcc
mov edi, edi
jg 0x52add0
mov esp, esp
jno 0x52add5
mov esp, 0x8108558b
ret 0xc48
mov edx, dword [ebp + 8]
add edx, 0xc48
mov dword [ebp - 0xc], edx
jmp case.default.0x52ad7e
test dword [esp], edi
jae 0x52ade8
call 0x52aded
lea esp, [esp + 4]
xchg edx, edx
jno 0x52ae05
pushf
or eax, 0
popf
jl 0x52adfe
mov esp, esp
xchg edi, edi
jo 0x52ae05
mov ebp, 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 0x52ae22
mov ecx, dword [ebp - 0x18]
add ecx, 1
mov dword [ebp - 0x18], ecx
cmp dword [ebp - 0x18], 0x100
jge 0x52ae55
lea edx, [edx]
js 0x52ae3a
jae 0x52ae31
ja 0x52ae33
jmp 0x52ae35
jne 0x52ae37
jns 0x52ae3a
add eax, 0xc1ec558b
loop 0x52ae4a
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 + 0x51a3b0]
mov dword [ecx + eax*4], edx
jmp 0x52ae19
xchg esp, eax
mov dl, 0xb0
mov dword [0x14890051], eax
sub ebx, 0xfefee9c4
invalid
jmp 0x52ad58
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x14], 0
jmp 0x52ae73
mov eax, dword [ebp - 0x14]
add eax, 1
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0x12
jge 0x52aef8
mov dword [ebp - 0x18], 0
jmp 0x52ae8b
mov ecx, dword [ebp - 0x18]
add ecx, 1
mov dword [ebp - 0x18], ecx
cmp dword [ebp - 0x18], 4
jge 0x52aec6
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 0x52aec4
mov dword [ebp - 0x1c], 0
jmp 0x52ae82
jno 0x52aec8
shr esp, 0
jnp 0x52aed9
xchg esi, eax
xchg esi, eax
xchg esp, esp
ja 0x52aed3
jb 0x52aed5
jp 0x52aed9
and ecx, 0x8bec558b
add al, 0x95
or byte [esi + 0x45330051], bl
clc
mov edx, dword [ebp - 0x14]
mov eax, dword [edx*4 + 0x519e08]
xor eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp + 8]
mov dword [edx + ecx*4 + 0xc00], eax
jmp 0x52ae6a
ja 0x52aefa
jno 0x52af06
mov ebx, ebx
nop
jae 0x52af01
jo 0x52af06
add eax, 0x45c7d9b6
cld
add byte [eax], al
add byte [eax], al
mov dword [ebp - 4], 0
push esi
pop esi
lea eax, [eax + 0x7bb2]
lea eax, [eax - 0x7bb2]
jne 0x52af27
jg 0x52af1f
lea ebx, [ebx]
lea esi, [esi]
je 0x52af27
ljmp 0:0xf045c708
mov dword [ebp - 0x10], 0
mov dword [ebp - 0x14], 0
jmp 0x52af40
mov eax, dword [ebp - 0x14]
add eax, 2
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0x12
jge 0x52af8a
test esp, 0x7b1e
jle 0x52af54
jg 0x52af50
jg 0x52af54
mov edx, 0xf04d8da0
lea ecx, [ebp - 0x10]
push ecx
lea edx, [ebp - 4]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.00526aea
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 0x52af37
mov dword [ebp - 0x14], 0
jmp 0x52af9c
mov ecx, dword [ebp - 0x14]
add ecx, 1
mov dword [ebp - 0x14], ecx
cmp dword [ebp - 0x14], 4
jge 0x52b0c7
mov edx, dword [ebp - 0x14]
mov dword [ebp - 0x24], edx
cmp dword [ebp - 0x24], 3
ja case.default.0x52afb9
mov eax, dword [ebp - 0x24]
jmp dword [eax*4 + 0x52b0e2]
rol esi, 0x18
ror esi, 0x18
lea ebx, [ebx + 0x6342]
sub ebx, 0x6342
add ecx, dword [esp]
sub ecx, dword [esp]
and esp, 0xffffffff
jbe 0x52afe4
xchg esp, esp
lea edi, [edi]
ja 0x52afe4
add 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.0x52afb9
lea eax, [eax + 0x402c]
lea eax, [eax - 0x402c]
je 0x52b00d
pushf
jae 0x52b004
popf
je 0x52b008
jle 0x52b00a
jne 0x52b00d
add eax, 0x8908558b
push ebp
hlt
mov edx, dword [ebp + 8]
mov dword [ebp - 0xc], edx
jmp case.default.0x52afb9
shr esi, 0
cmp edi, esi
jns 0x52b026
jnp 0x52b01e
jmp 0x52b020
jge 0x52b022
js 0x52b026
mov ecx, 0x8458bce
mov eax, dword [ebp + 8]
add eax, 0xc48
mov dword [ebp - 0xc], eax
jmp case.default.0x52afb9
and esp, 0xffffffff
inc eax
dec eax
std
cld
jo 0x52b03c
jge 0x52b046
mov esp, esp
jbe 0x52b042
jl 0x52b046
mov ebx, 0x84d8bbe
mov ecx, dword [ebp + 8]
add ecx, 0x800
mov dword [ebp - 0xc], ecx
mov dword [ebp - 0x18], 0
jmp 0x52b064
mov edx, dword [ebp - 0x18]
add edx, 2
mov dword [ebp - 0x18], edx
cmp dword [ebp - 0x18], 0x100
jge 0x52b0c2
lea eax, [ebp - 0x10]
push eax
lea ecx, [ebp - 4]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.00526aea
add esp, 0xc
cmp edx, ecx
jb 0x52b092
pushf
jp 0x52b089
popf
xchg esp, esp
lea ecx, [ecx]
jae 0x52b092
mov esi, 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
jno 0x52b0a0
xchg ebx, ebx
ror edx, 0x17
ror edx, 9
jg 0x52b0b3
jle 0x52b0ac
jb 0x52b0ae
jg 0x52b0b0
jle 0x52b0b3
mov ebx, 0x8be8458b
dec ebp
hlt
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 0x10]
mov dword [ecx + eax*4 + 4], edx
jmp 0x52b05b
jmp 0x52af93
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc