Function at 0x412930
Capabilities:
Encrypt data using des

Disassembly:
sub esp, 0x74
push ebx
mov ebx, dword [esp + 0x7c]
push ebp
push esi
mov esi, dword [esp + 0x88]
push edi
push ebx
call fcn.004128d0
mov ecx, 0x20
xor eax, eax
mov edi, ebx
rep stosd dword es:[edi], eax
mov ecx, 0x20
lea edi, [ebx + 0x80]
rep stosd dword es:[edi], eax
mov ecx, 0x20
lea edi, [ebx + 0x100]
rep stosd dword es:[edi], eax
xor ecx, ecx
movsx eax, byte [ecx + str.91__]
dec eax
mov edx, eax
and eax, 7
sar edx, 3
mov edi, dword [eax*4 + 0x430bfc]
movsx edx, byte [edx + esi]
test edi, edx
setne al
mov byte [esp + ecx + 0x14], al
inc ecx
cmp ecx, 0x38
jl 0x41296f
xor edi, edi
movsx ecx, byte [edi + 0x43099c]
xor eax, eax
xor edx, edx
cmp eax, 0x1c
setge dl
dec edx
mov esi, ecx
and edx, 0xffffffe4
add edx, 0x38
cmp ecx, edx
jl 0x4129bc
lea esi, [ecx - 0x1c]
mov dl, byte [esp + esi + 0x14]
mov byte [esp + eax + 0x4c], dl
inc eax
inc ecx
cmp eax, 0x38
jl 0x4129a4
xor ecx, ecx
movsx eax, byte [ecx + 0x4309ac]
mov dl, byte [esp + eax + 0x4b]
test dl, dl
je 0x412a0b
mov eax, 0x2aaaaaab
mov ebp, 6
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, ebx
add eax, edx
lea esi, [eax + edi*8]
mov eax, ecx
cdq
idiv ebp
mov al, byte [esi]
mov edx, dword [edx*4 + 0x430bfc]
sar edx, 2
or al, dl
mov byte [esi], al
inc ecx
cmp ecx, 0x30
jl 0x4129cd
inc edi
cmp edi, 0x10
jl 0x41299b
mov esi, dword [esp + 0x8c]
xor ecx, ecx
movsx eax, byte [ecx + str.91__]
dec eax
mov edx, eax
and eax, 7
sar edx, 3
mov edi, dword [eax*4 + 0x430bfc]
movsx edx, byte [edx + esi + 8]
test edi, edx
setne al
mov byte [esp + ecx + 0x14], al
inc ecx
cmp ecx, 0x38
jl 0x412a20
mov dword [esp + 0x10], 0
mov edi, 0x80
mov ecx, dword [esp + 0x10]
xor eax, eax
movsx ecx, byte [ecx + 0x43099c]
xor edx, edx
cmp eax, 0x1c
setge dl
dec edx
mov esi, ecx
and edx, 0xffffffe4
add edx, 0x38
cmp ecx, edx
jl 0x412a7d
lea esi, [ecx - 0x1c]
mov dl, byte [esp + esi + 0x14]
mov byte [esp + eax + 0x4c], dl
inc eax
inc ecx
cmp eax, 0x38
jl 0x412a65
xor ecx, ecx
movsx eax, byte [ecx + 0x4309ac]
mov dl, byte [esp + eax + 0x4b]
test dl, dl
je 0x412aca
mov eax, 0x2aaaaaab
mov ebp, 6
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, ecx
add edx, edi
lea esi, [edx + ebx]
cdq
idiv ebp
mov al, byte [esi]
mov edx, dword [edx*4 + 0x430bfc]
sar edx, 2
or al, dl
mov byte [esi], al
inc ecx
cmp ecx, 0x30
jl 0x412a8e
mov edx, dword [esp + 0x10]
add edi, 8
inc edx
cmp edi, 0x100
mov dword [esp + 0x10], edx
jl 0x412a58
mov esi, dword [esp + 0x8c]
xor ecx, ecx
movsx eax, byte [ecx + str.91__]
dec eax
mov edx, eax
and eax, 7
sar edx, 3
mov edi, dword [eax*4 + 0x430bfc]
movsx edx, byte [edx + esi + 0x10]
test edi, edx
setne al
mov byte [esp + ecx + 0x14], al
inc ecx
cmp ecx, 0x38
jl 0x412af1
xor ebp, ebp
mov edi, 0x100
movsx ecx, byte [ebp + 0x43099c]
xor eax, eax
xor edx, edx
cmp eax, 0x1c
setge dl
dec edx
mov esi, ecx
and edx, 0xffffffe4
add edx, 0x38
cmp ecx, edx
jl 0x412b44
lea esi, [ecx - 0x1c]
mov dl, byte [esp + esi + 0x14]
mov byte [esp + eax + 0x4c], dl
inc eax
inc ecx
cmp eax, 0x38
jl 0x412b2c
xor ecx, ecx
movsx eax, byte [ecx + 0x4309ac]
mov dl, byte [esp + eax + 0x4b]
test dl, dl
je 0x412b98
mov eax, 0x2aaaaaab
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, ecx
add edx, edi
lea esi, [edx + ebx]
mov ebx, 6
cdq
idiv ebx
mov al, byte [esi]
mov ebx, dword [esp + 0x88]
mov edx, dword [edx*4 + 0x430bfc]
sar edx, 2
or al, dl
mov byte [esi], al
inc ecx
cmp ecx, 0x30
jl 0x412b55
add edi, 8
inc ebp
cmp edi, 0x180
jl 0x412b23
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x74
ret 0xc