Function at 0x100b43a0
Capabilities:
Encrypt data using des

Disassembly:
sub esp, 0x90
push ebx
mov ebx, dword [esp + 0x9c]
push ebp
push esi
xor esi, esi
push edi
xor edx, edx
xor edi, edi
lea ebp, [esi + 1]
lea ebx, [ebx]
movzx eax, byte [edi + 0x10180ad8]
mov ecx, eax
and ecx, 7
movzx ecx, byte [ecx*4 + 0x10180ab8]
shr eax, 3
and cl, byte [eax + ebx]
movzx eax, cl
neg eax
sbb eax, eax
and eax, ebp
or esi, eax
mov eax, ebp
movzx ebp, byte [edi + 0x10180ad9]
mov ecx, ebp
and ecx, 7
movzx ecx, byte [ecx*4 + 0x10180ab8]
shr ebp, 3
and cl, byte [ebx + ebp]
movzx ebp, byte [edi + 0x10180ada]
movzx ecx, cl
rol eax, 1
neg ecx
sbb ecx, ecx
and ecx, eax
or esi, ecx
mov ecx, ebp
and ecx, 7
movzx ecx, byte [ecx*4 + 0x10180ab8]
shr ebp, 3
and cl, byte [ebx + ebp]
movzx ebp, byte [edi + 0x10180adb]
rol eax, 1
movzx ecx, cl
neg ecx
sbb ecx, ecx
and ecx, eax
or esi, ecx
rol eax, 1
mov ecx, eax
mov eax, ebp
and eax, 7
mov al, byte [eax*4 + 0x10180ab8]
shr ebp, 3
and al, byte [ebx + ebp]
movzx eax, al
neg eax
sbb eax, eax
and eax, ecx
or esi, eax
rol ecx, 1
add edi, 4
mov ebp, ecx
cmp edi, 0x1c
jb 0x100b43c0
mov ebp, 0x1c
mov edi, 0x10000000
jmp 0x100b4480
movzx eax, byte [ebp + 0x10180ad8]
mov ecx, eax
shr ecx, 3
mov cl, byte [ecx + ebx]
and eax, 7
test byte [eax*4 + 0x10180ab8], cl
je 0x100b44a2
mov eax, edi
ror eax, 0x1c
jmp 0x100b44a4
xor eax, eax
or edx, eax
rol edi, 1
mov eax, edi
movzx edi, byte [ebp + 0x10180ad9]
mov ecx, edi
shr ecx, 3
mov cl, byte [ecx + ebx]
and edi, 7
test byte [edi*4 + 0x10180ab8], cl
je 0x100b44cc
mov ecx, eax
ror ecx, 0x1c
jmp 0x100b44ce
xor ecx, ecx
movzx edi, byte [ebp + 0x10180ada]
or edx, ecx
mov ecx, edi
shr ecx, 3
mov cl, byte [ecx + ebx]
and edi, 7
rol eax, 1
test byte [edi*4 + 0x10180ab8], cl
je 0x100b44f4
mov ecx, eax
ror ecx, 0x1c
jmp 0x100b44f6
xor ecx, ecx
movzx edi, byte [ebp + 0x10180adb]
or edx, ecx
mov ecx, edi
shr ecx, 3
mov cl, byte [ecx + ebx]
and edi, 7
rol eax, 1
test byte [edi*4 + 0x10180ab8], cl
je 0x100b451c
mov ecx, eax
ror ecx, 0x1c
jmp 0x100b451e
xor ecx, ecx
or edx, ecx
rol eax, 1
add ebp, 4
mov edi, eax
cmp ebp, 0x38
jb 0x100b4480
mov ecx, dword [esp + 0xb0]
add ecx, ecx
add ecx, ecx
xor eax, eax
add ecx, ecx
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0xac]
lea edi, [esp + ecx*8 + 0x24]
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], edi
lea ebx, [esp + ecx*8 + 0x20]
lea ebx, [ebx]
movzx edi, byte [eax + 0x10180aa8]
mov ebp, 0x1c
sub ebp, edi
mov ecx, ebp
mov eax, esi
shl eax, cl
mov ecx, edi
shr esi, cl
mov ecx, ebp
or eax, esi
mov esi, edx
shl esi, cl
mov ecx, edi
shr edx, cl
mov edi, eax
and edi, 0xc00000
or esi, edx
mov edx, eax
shr edx, 1
mov ecx, edx
and ecx, 0x7000000
or ecx, edi
mov ebp, edx
shr ecx, 1
and ebp, 0x60000
mov edi, eax
and edi, 0x100000
or ecx, edi
shr ecx, 0x14
mov ecx, dword [ecx*4 + 0x10180e10]
and edx, 0xf00
mov edi, eax
and edi, 0x1e000
or edi, ebp
shr edi, 0xd
or ecx, dword [edi*4 + 0x10180d10]
mov edi, eax
and edi, 0xc0
or edx, edi
shr edx, 6
or ecx, dword [edx*4 + 0x10180c10]
mov edx, eax
and edx, 0x3f
or ecx, dword [edx*4 + 0x10180b10]
mov edi, esi
shr edi, 1
mov edx, edi
and edx, 0x1e00
and edi, 0x6000000
mov ebp, esi
and ebp, 0x180
or edx, ebp
shr edx, 7
mov edx, dword [edx*4 + 0x10181010]
mov ebp, esi
and ebp, 0x1e00000
or edi, ebp
shr edi, 0x15
or edx, dword [edi*4 + 0x10181210]
mov edi, esi
shr edi, 0xf
and edi, 0x3f
or edx, dword [edi*4 + 0x10181110]
mov edi, esi
and edi, 0x3f
or edx, dword [edi*4 + 0x10180f10]
movzx edi, cx
mov ebp, edx
shl ebp, 0x10
shr ecx, 0x10
and edx, 0xffff0000
or edi, ebp
or ecx, edx
mov edx, dword [esp + 0x10]
ror edi, 0x1e
ror ecx, 0x1a
mov dword [edx], ecx
mov ecx, dword [esp + 0x18]
mov dword [ebx], edi
add ebx, ecx
add edx, ecx
mov ecx, dword [esp + 0x14]
movzx ebp, byte [ecx + 0x10180aa9]
mov edi, esi
mov dword [esp + 0x10], edx
mov edx, eax
mov ecx, 0x1c
sub ecx, ebp
shl edx, cl
mov dword [esp + 0x1c], ecx
mov ecx, ebp
shr eax, cl
mov ecx, dword [esp + 0x1c]
shl edi, cl
mov ecx, ebp
shr esi, cl
or edx, eax
mov ecx, edx
shr ecx, 1
or edi, esi
mov eax, ecx
and eax, 0x7000000
mov ebp, ecx
mov esi, edx
and esi, 0xc00000
or eax, esi
shr eax, 1
and ebp, 0x60000
mov esi, edx
and esi, 0x100000
or eax, esi
shr eax, 0x14
mov eax, dword [eax*4 + 0x10180e10]
and ecx, 0xf00
mov esi, edx
and esi, 0x1e000
or esi, ebp
shr esi, 0xd
or eax, dword [esi*4 + 0x10180d10]
mov esi, edx
and esi, 0xc0
or ecx, esi
shr ecx, 6
or eax, dword [ecx*4 + 0x10180c10]
mov ecx, edx
and ecx, 0x3f
or eax, dword [ecx*4 + 0x10180b10]
mov esi, edi
shr esi, 1
mov ecx, esi
and ecx, 0x1e00
and esi, 0x6000000
mov ebp, edi
and ebp, 0x180
or ecx, ebp
shr ecx, 7
mov ecx, dword [ecx*4 + 0x10181010]
mov ebp, edi
and ebp, 0x1e00000
or esi, ebp
shr esi, 0x15
or ecx, dword [esi*4 + 0x10181210]
mov esi, edi
shr esi, 0xf
and esi, 0x3f
or ecx, dword [esi*4 + 0x10181110]
mov esi, edi
and esi, 0x3f
or ecx, dword [esi*4 + 0x10180f10]
movzx esi, ax
mov ebp, ecx
shl ebp, 0x10
shr eax, 0x10
and ecx, 0xffff0000
or esi, ebp
or eax, ecx
mov ecx, dword [esp + 0x10]
ror esi, 0x1e
ror eax, 0x1a
mov dword [ebx], esi
mov dword [ecx], eax
mov eax, dword [esp + 0x18]
add ecx, eax
mov dword [esp + 0x10], ecx
add ebx, eax
mov eax, dword [esp + 0x14]
movzx esi, byte [eax + 0x10180aaa]
mov ebp, 0x1c
sub ebp, esi
mov ecx, ebp
mov eax, edx
shl eax, cl
mov ecx, esi
shr edx, cl
mov ecx, ebp
or eax, edx
mov edx, edi
shl edx, cl
mov ecx, esi
shr edi, cl
mov esi, eax
shr esi, 1
mov ecx, esi
or edx, edi
and ecx, 0x7000000
mov ebp, esi
mov edi, eax
and edi, 0xc00000
or ecx, edi
shr ecx, 1
and ebp, 0x60000
mov edi, eax
and edi, 0x100000
or ecx, edi
and esi, 0xf00
shr ecx, 0x14
mov ecx, dword [ecx*4 + 0x10180e10]
mov edi, eax
and edi, 0x1e000
or edi, ebp
shr edi, 0xd
or ecx, dword [edi*4 + 0x10180d10]
mov edi, eax
and edi, 0xc0
or esi, edi
shr esi, 6
or ecx, dword [esi*4 + 0x10180c10]
mov esi, eax
and esi, 0x3f
or ecx, dword [esi*4 + 0x10180b10]
mov edi, edx
shr edi, 1
mov esi, edi
and esi, 0x1e00
and edi, 0x6000000
mov ebp, edx
and ebp, 0x180
or esi, ebp
shr esi, 7
mov esi, dword [esi*4 + 0x10181010]
mov ebp, edx
and ebp, 0x1e00000
or edi, ebp
shr edi, 0x15
or esi, dword [edi*4 + 0x10181210]
mov edi, edx
shr edi, 0xf
and edi, 0x3f
or esi, dword [edi*4 + 0x10181110]
mov edi, edx
and edi, 0x3f
or esi, dword [edi*4 + 0x10180f10]
movzx edi, cx
mov ebp, esi
shl ebp, 0x10
and esi, 0xffff0000
or edi, ebp
shr ecx, 0x10
ror edi, 0x1e
or ecx, esi
mov esi, dword [esp + 0x10]
mov dword [ebx], edi
ror ecx, 0x1a
mov dword [esi], ecx
mov ecx, dword [esp + 0x18]
add esi, ecx
add ebx, ecx
mov ecx, dword [esp + 0x14]
movzx edi, byte [ecx + 0x10180aab]
mov ebp, 0x1c
sub ebp, edi
mov ecx, ebp
mov dword [esp + 0x10], esi
mov esi, eax
shl esi, cl
mov ecx, edi
shr eax, cl
mov ecx, ebp
or esi, eax
mov eax, edx
shl eax, cl
mov ecx, edi
shr edx, cl
mov ecx, esi
shr ecx, 1
mov ebp, ecx
or edx, eax
mov eax, ecx
and eax, 0x7000000
mov edi, esi
and edi, 0xc00000
or eax, edi
shr eax, 1
and ebp, 0x60000
mov edi, esi
and edi, 0x100000
or eax, edi
and ecx, 0xf00
shr eax, 0x14
mov eax, dword [eax*4 + 0x10180e10]
mov edi, esi
and edi, 0x1e000
or edi, ebp
shr edi, 0xd
or eax, dword [edi*4 + 0x10180d10]
mov edi, esi
and edi, 0xc0
or ecx, edi
shr ecx, 6
or eax, dword [ecx*4 + 0x10180c10]
mov ecx, esi
and ecx, 0x3f
or eax, dword [ecx*4 + 0x10180b10]
mov edi, edx
shr edi, 1
mov ecx, edi
and ecx, 0x1e00
and edi, 0x6000000
mov ebp, edx
and ebp, 0x180
or ecx, ebp
shr ecx, 7
mov ecx, dword [ecx*4 + 0x10181010]
mov ebp, edx
and ebp, 0x1e00000
or edi, ebp
shr edi, 0x15
or ecx, dword [edi*4 + 0x10181210]
mov edi, edx
shr edi, 0xf
and edi, 0x3f
or ecx, dword [edi*4 + 0x10181110]
mov edi, edx
and edi, 0x3f
or ecx, dword [edi*4 + 0x10180f10]
movzx edi, ax
mov ebp, ecx
shl ebp, 0x10
or edi, ebp
ror edi, 0x1e
shr eax, 0x10
and ecx, 0xffff0000
mov dword [ebx], edi
or eax, ecx
mov ecx, dword [esp + 0x10]
ror eax, 0x1a
mov dword [ecx], eax
mov eax, dword [esp + 0x18]
add ecx, eax
add ebx, eax
mov eax, dword [esp + 0x14]
add eax, 4
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], eax
cmp eax, 0x10
jb 0x100b4560
mov edi, dword [esp + 0xa4]
mov ecx, 0x20
lea esi, [esp + 0x20]
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x90
ret