Function at 0x45d9a0
Capabilities:
Encode data using base64

Disassembly:
mov eax, dword [esp + 4]
sub esp, 0x14
test eax, 0x100
je 0x45d9fa
mov ecx, dword [esp + 0x20]
test al, 0x20
mov eax, dword [esp + 0x1c]
jne 0x45d9c0
add eax, 2
add ecx, 2
cmp eax, ecx
jle 0x45d9c6
mov ecx, eax
mov eax, 0x20
cmp ecx, eax
jbe 0x45d9d6
nop
add eax, eax
cmp eax, ecx
jb 0x45d9d0
mov ecx, dword [esp + 0x24]
test ecx, ecx
je 0x45d9e4
mov dword [ecx], 1
mov ecx, dword [esp + 0x28]
test ecx, ecx
je 0x45de65
mov dword [ecx], 1
add esp, 0x14
ret
test al, 0x20
push ebx
push ebp
push esi
push edi
je 0x45dbed
mov edi, dword [esp + 0x2c]
cmp edi, 0x100
mov ebx, dword [esp + 0x30]
jl 0x45da67
cmp ebx, 0x100
jl 0x45da67
mov ecx, dword [esp + 0x34]
test ecx, ecx
je 0x45da3a
lea eax, [edi + 0xff]
cdq
and edx, 0xff
add eax, edx
sar eax, 8
mov dword [ecx], eax
mov ecx, dword [esp + 0x38]
test ecx, ecx
je 0x45de5c
lea eax, [ebx + 0xff]
cdq
and edx, 0xff
pop edi
add eax, edx
pop esi
sar eax, 8
pop ebp
mov dword [ecx], eax
mov eax, 0x100
pop ebx
add esp, 0x14
ret
lea eax, [edi + 0x1f]
lea ecx, [ebx + 0x1f]
mov dword [esp + 0x28], ecx
sar ecx, 5
mov edx, eax
sar edx, 5
imul ecx, edx
lea esi, [edi + 0x3f]
lea edx, [ebx + 0x3f]
mov dword [esp + 0x18], esi
sar esi, 6
mov dword [esp + 0x1c], edx
sar edx, 6
imul edx, esi
lea ebp, [edi + 0x7f]
imul edx, edx, 0x3000
lea esi, [ebx + 0x7f]
mov dword [esp + 0x14], esi
mov dword [esp + 0x10], ebp
sar esi, 7
sar ebp, 7
imul esi, ebp
lea ebp, [edi + 0xff]
lea edi, [ebx + 0xff]
mov dword [esp + 0x20], edi
sar edi, 8
mov ebx, ebp
sar ebx, 8
imul edi, ebx
shl ecx, 0xc
shl esi, 0xf
shl edi, 0x10
cmp ecx, edx
jae 0x45db67
cmp esi, edi
jae 0x45daed
cmp ecx, esi
mov ecx, dword [esp + 0x34]
jb 0x45daf5
jmp 0x45db73
cmp ecx, edi
mov ecx, dword [esp + 0x34]
jae 0x45db28
test ecx, ecx
je 0x45db04
cdq
and edx, 0x1f
add eax, edx
sar eax, 5
mov dword [ecx], eax
mov ecx, dword [esp + 0x38]
test ecx, ecx
je 0x45db1b
mov eax, dword [esp + 0x28]
cdq
and edx, 0x1f
add eax, edx
sar eax, 5
mov dword [ecx], eax
pop edi
pop esi
pop ebp
mov eax, 0x20
pop ebx
add esp, 0x14
ret
test ecx, ecx
je 0x45db3c
mov eax, ebp
cdq
and edx, 0xff
add eax, edx
sar eax, 8
mov dword [ecx], eax
mov ecx, dword [esp + 0x38]
test ecx, ecx
je 0x45de5c
mov eax, dword [esp + 0x20]
cdq
and edx, 0xff
pop edi
add eax, edx
pop esi
sar eax, 8
pop ebp
mov dword [ecx], eax
mov eax, 0x100
pop ebx
add esp, 0x14
ret
cmp esi, edi
mov ecx, dword [esp + 0x34]
jae 0x45dbae
cmp edx, esi
jb 0x45dbb6
test ecx, ecx
je 0x45db86
mov eax, dword [esp + 0x10]
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
mov dword [ecx], eax
mov ecx, dword [esp + 0x38]
test ecx, ecx
je 0x45de0e
mov eax, dword [esp + 0x14]
cdq
and edx, 0x7f
pop edi
add eax, edx
pop esi
sar eax, 7
pop ebp
mov dword [ecx], eax
mov eax, 0x80
pop ebx
add esp, 0x14
ret
cmp edx, edi
jae 0x45db28
test ecx, ecx
je 0x45dbc9
mov eax, dword [esp + 0x18]
cdq
and edx, 0x3f
add eax, edx
sar eax, 6
mov dword [ecx], eax
mov ecx, dword [esp + 0x38]
test ecx, ecx
je 0x45dbe0
mov eax, dword [esp + 0x1c]
cdq
and edx, 0x3f
add eax, edx
sar eax, 6
mov dword [ecx], eax
pop edi
pop esi
pop ebp
mov eax, 0x40
pop ebx
add esp, 0x14
ret
mov ecx, dword [esp + 0x2c]
cmp ecx, 0xfe
mov edi, dword [esp + 0x30]
jl 0x45dc5c
cmp edi, 0xfe
jl 0x45dc5c
mov esi, dword [esp + 0x34]
test esi, esi
je 0x45dc28
add ecx, 0xfd
mov eax, 0x81020409
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esi], eax
mov esi, dword [esp + 0x38]
test esi, esi
je 0x45de5c
lea ecx, [edi + 0xfd]
mov eax, 0x81020409
imul ecx
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
pop edi
add ecx, edx
mov dword [esi], ecx
pop esi
pop ebp
mov eax, 0x100
pop ebx
add esp, 0x14
ret
mov edi, ecx
lea ecx, [edi + 0x1d]
mov eax, 0x88888889
imul ecx
add edx, ecx
mov ecx, dword [esp + 0x30]
sar edx, 4
mov ebx, edx
add ecx, 0x1d
shr ebx, 0x1f
add ebx, edx
mov eax, 0x88888889
imul ecx
add edx, ecx
sar edx, 4
mov ecx, edx
lea esi, [edi + 0x3d]
shr ecx, 0x1f
add ecx, edx
mov eax, 0x84210843
imul esi
add edx, esi
mov esi, dword [esp + 0x30]
sar edx, 5
mov ebp, edx
add esi, 0x3d
shr ebp, 0x1f
add ebp, edx
mov eax, 0x84210843
imul esi
add edx, esi
sar edx, 5
mov esi, edx
add edi, 0x7d
shr esi, 0x1f
add esi, edx
mov eax, 0x82082083
imul edi
add edx, edi
mov edi, dword [esp + 0x30]
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x28], eax
add edi, 0x7d
mov eax, 0x82082083
imul edi
add edx, edi
sar edx, 6
mov edi, edx
shr edi, 0x1f
add edi, edx
mov edx, dword [esp + 0x2c]
add edx, 0xfd
mov dword [esp + 0x14], edx
mov eax, 0x81020409
imul edx
add edx, dword [esp + 0x14]
mov dword [esp + 0x20], ecx
imul ecx, ebx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x30]
add edx, 0xfd
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
mov eax, 0x81020409
imul edx
add edx, dword [esp + 0x14]
mov dword [esp + 0x18], esi
imul esi, ebp
mov dword [esp + 0x1c], edi
imul edi, dword [esp + 0x28]
imul esi, esi, 0x3000
shl ecx, 0xc
shl edi, 0xf
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x14], eax
imul eax, dword [esp + 0x10]
shl eax, 0x10
cmp ecx, esi
jae 0x45ddc9
cmp edi, eax
jae 0x45dd9c
cmp ecx, edi
mov eax, dword [esp + 0x34]
jae 0x45ddf6
test eax, eax
je 0x45dd81
mov dword [eax], ebx
mov eax, dword [esp + 0x38]
test eax, eax
je 0x45dd8f
mov edx, dword [esp + 0x20]
mov dword [eax], edx
pop edi
pop esi
pop ebp
mov eax, 0x20
pop ebx
add esp, 0x14
ret
cmp ecx, eax
mov eax, dword [esp + 0x34]
jae 0x45de44
test eax, eax
je 0x45ddae
mov dword [eax], ebx
mov eax, dword [esp + 0x38]
test eax, eax
je 0x45ddbc
mov ecx, dword [esp + 0x20]
mov dword [eax], ecx
pop edi
pop esi
pop ebp
mov eax, 0x20
pop ebx
add esp, 0x14
ret
cmp edi, eax
jae 0x45de1b
cmp esi, edi
mov eax, dword [esp + 0x34]
jae 0x45ddf6
test eax, eax
je 0x45dddb
mov dword [eax], ebp
mov eax, dword [esp + 0x38]
test eax, eax
je 0x45dde9
mov edx, dword [esp + 0x18]
mov dword [eax], edx
pop edi
pop esi
pop ebp
mov eax, 0x40
pop ebx
add esp, 0x14
ret
test eax, eax
je 0x45de00
mov ecx, dword [esp + 0x28]
mov dword [eax], ecx
mov eax, dword [esp + 0x38]
test eax, eax
je 0x45de0e
mov edx, dword [esp + 0x1c]
mov dword [eax], edx
pop edi
pop esi
pop ebp
mov eax, 0x80
pop ebx
add esp, 0x14
ret
cmp esi, eax
mov eax, dword [esp + 0x34]
jae 0x45de44
test eax, eax
je 0x45de29
mov dword [eax], ebp
mov eax, dword [esp + 0x38]
test eax, eax
je 0x45de37
mov ecx, dword [esp + 0x18]
mov dword [eax], ecx
pop edi
pop esi
pop ebp
mov eax, 0x40
pop ebx
add esp, 0x14
ret
test eax, eax
je 0x45de4e
mov edx, dword [esp + 0x10]
mov dword [eax], edx
mov eax, dword [esp + 0x38]
test eax, eax
je 0x45de5c
mov ecx, dword [esp + 0x14]
mov dword [eax], ecx
pop edi
pop esi
pop ebp
mov eax, 0x100
pop ebx
add esp, 0x14
ret