Function at 0x43e920
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push ebx
mov ebx, dword [ebp + 0x18]
push esi
mov esi, dword [ebp + 8]
push edi
shr ebx, 0xb
xor edi, edi
mov esi, dword [esi]
movzx edx, byte [esi + 1]
add esi, 2
and ebx, 1
je 0x43ea27
cmp edx, 0xc0
jb 0x43ea27
movzx eax, byte [esi]
and eax, 0x3f
test dl, 0x20
jne 0x43e96b
and edx, 0x1f
shl edx, 6
or edx, eax
inc esi
jmp 0x43ea27
test dl, 0x10
jne 0x43e98c
and edx, 0xf
shl edx, 6
or edx, eax
movzx eax, byte [esi + 1]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 2
jmp 0x43ea27
test dl, 8
jne 0x43e9b6
and edx, 7
shl edx, 6
or edx, eax
movzx eax, byte [esi + 1]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 3
jmp 0x43ea27
test dl, 4
jne 0x43e9ec
and edx, 3
shl edx, 6
or edx, eax
movzx eax, byte [esi + 1]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 4
jmp 0x43ea27
and edx, 1
shl edx, 6
or edx, eax
movzx eax, byte [esi + 1]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 4]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 5
dec esi
test edx, edx
jne 0x43ea3a
mov eax, dword [ebp + 0x10]
mov dword [eax], 1
jmp 0x43ec7e
lea eax, [edx - 0x30]
cmp eax, 0x4a
ja 0x43ec7e
lea ecx, [edx - 0x30]
movsx edi, word [ecx*2 + 0x5f1ab8]
test edi, edi
je 0x43ea62
jle 0x43edb1
mov edx, edi
jmp 0x43ec7c
cmp eax, 0x48
ja case.0x43ea72.10
movzx eax, byte [eax + 0x43f074]
jmp dword [eax*4 + 0x43f04c]
mov eax, dword [ebp + 0x10]
mov dword [eax], 0x25
jmp 0x43ec7c
test dword [ebp + 0x18], 0x2000000
je case.0x43ea72.28
movzx eax, byte [esi + 1]
mov dword [ebp - 4], eax
test byte [eax + 0x5f2a88], 8
je 0x43ec7c
movzx ecx, byte [esi + 2]
test byte [ecx + 0x5f2a88], 8
je 0x43ec7c
movzx edi, byte [esi + 3]
test byte [edi + 0x5f2a88], 8
je 0x43ec7c
lea eax, [esi + 4]
mov dword [ebp - 0xc], eax
movzx eax, byte [eax]
mov dword [ebp - 8], eax
test byte [eax + 0x5f2a88], 8
je 0x43ec7c
mov edx, dword [ebp - 4]
cmp edx, 0x61
jb 0x43eaea
sub edx, 0x20
cmp edx, 0x41
sbb eax, eax
and eax, 0xfffffff9
add eax, 0x37
sub edx, eax
cmp ecx, 0x61
jb 0x43eaff
sub ecx, 0x20
cmp ecx, 0x41
sbb eax, eax
shl edx, 4
and eax, 0xfffffff9
add eax, 0x37
sub edx, eax
add edx, ecx
cmp edi, 0x61
jb 0x43eb19
sub edi, 0x20
mov ecx, dword [ebp - 8]
cmp edi, 0x41
sbb eax, eax
shl edx, 4
and eax, 0xfffffff9
add eax, 0x37
sub edx, eax
add edx, edi
cmp ecx, 0x61
jb 0x43eb36
sub ecx, 0x20
mov esi, dword [ebp - 0xc]
cmp ecx, 0x41
sbb eax, eax
shl edx, 4
and eax, 0xfffffff9
add eax, 0x37
sub edx, eax
mov eax, 0xff
add edx, ecx
test ebx, ebx
mov ecx, 0x10ffff
cmovne eax, ecx
cmp edx, eax
jbe 0x43ee40
mov eax, dword [ebp + 0x10]
mov dword [eax], 0x4c
jmp 0x43ec7c
mov ecx, dword [ebp + 0x18]
xor edi, edi
test ecx, 0x2000000
jne 0x43ec81
mov eax, dword [ebp + 0x10]
mov dword [eax], 0x25
jmp 0x43ec81
cmp dword [ebp + 0x1c], 0
jne 0x43ec7c
mov al, byte [esi + 1]
cmp al, 0x3c
je 0x43ecda
cmp al, 0x27
je 0x43ecda
cmp al, 0x7b
jne 0x43ebf4
mov al, byte [esi + 2]
lea ecx, [esi + 2]
test al, al
je 0x43ebd8
nop word [eax + eax]
cmp al, 0x7d
je 0x43ebe0
cmp al, 0x2d
je 0x43ebd0
cmp al, 0x30
jb 0x43ebe0
cmp al, 0x39
ja 0x43ebe0
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x43ebc0
mov ebx, 1
inc esi
jmp 0x43ebf6
mov al, byte [ecx]
test al, al
je 0x43ebd8
cmp al, 0x7d
je 0x43ebd8
mov edi, 0x1c
jmp 0x43ec7e
xor ebx, ebx
cmp byte [esi + 1], 0x2d
jne 0x43ec06
mov dword [ebp - 4], 1
inc esi
jmp 0x43ec0d
mov dword [ebp - 4], 0
mov cl, byte [esi + 1]
lea edi, [esi + 1]
xor eax, eax
cmp cl, 0x30
jb 0x43ec44
nop word [eax + eax]
cmp cl, 0x39
ja 0x43ec44
cmp eax, 0xccccccb
jg 0x43ec59
mov esi, edi
lea ecx, [eax + eax*4]
lea edi, [esi + 1]
movzx eax, byte [esi]
lea eax, [eax + ecx*2]
mov cl, byte [edi]
add eax, 0xffffffd0
cmp cl, 0x30
jae 0x43ec20
test ebx, ebx
je 0x43eca7
inc esi
cmp byte [esi], 0x7d
je 0x43eca7
mov eax, dword [ebp + 0x10]
mov dword [eax], 0x39
jmp 0x43ec7c
mov al, byte [esi + 1]
lea ecx, [esi + 1]
cmp al, 0x30
jb 0x43ec73
cmp al, 0x39
ja 0x43ec73
mov esi, ecx
mov al, byte [esi + 1]
lea ecx, [esi + 1]
cmp al, 0x30
jae 0x43ec63
mov eax, dword [ebp + 0x10]
mov dword [eax], 0x3d
xor edi, edi
mov ecx, dword [ebp + 0x18]
test ecx, 0x20000000
je 0x43ec94
lea ecx, [edi - 6]
cmp ecx, 5
ja 0x43ec94
add edi, 0x17
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 0xc]
mov dword [eax], esi
mov eax, edi
pop edi
pop esi
mov dword [ecx], edx
pop ebx
mov esp, ebp
pop ebp
ret
test eax, eax
jne 0x43ecb6
mov eax, dword [ebp + 0x10]
mov dword [eax], 0x3a
jmp 0x43ec7c
cmp dword [ebp - 4], 0
je 0x43ecd3
mov ecx, dword [ebp + 0x14]
cmp eax, ecx
jle 0x43ecce
mov eax, dword [ebp + 0x10]
mov dword [eax], 0xf
jmp 0x43ec7c
sub ecx, eax
lea eax, [ecx + 1]
mov edi, eax
jmp 0x43edb1
mov edi, 0x1b
jmp 0x43ec7e
cmp dword [ebp + 0x1c], 0
jne 0x43ed36
lea eax, [esi + 1]
mov dword [ebp - 0xc], esi
mov dword [ebp - 4], eax
mov al, byte [eax]
cmp al, 0x30
jb 0x43ed21
cmp al, 0x39
ja 0x43ed21
cmp ecx, 0xccccccb
jg 0x43ed88
mov esi, dword [ebp - 4]
lea ecx, [ecx + ecx*4]
lea ecx, [ecx - 0x18]
movzx eax, byte [esi]
lea ecx, [eax + ecx*2]
lea eax, [esi + 1]
mov dword [ebp - 4], eax
mov al, byte [eax]
cmp al, 0x30
jae 0x43ecf6
cmp ecx, 8
jl 0x43edaf
cmp ecx, dword [ebp + 0x14]
jle 0x43edaf
mov esi, dword [ebp - 0xc]
movzx edx, byte [esi]
cmp edx, 0x38
jae 0x43ec7c
sub edx, 0x30
mov al, byte [esi + 1]
inc edi
cmp al, 0x30
jb 0x43ed61
cmp al, 0x37
ja 0x43ed61
movzx eax, byte [esi + 1]
inc esi
add edx, 0xfffffffa
lea edx, [eax + edx*8]
cmp edi, 2
jl 0x43ed45
test ebx, ebx
jne 0x43ec7c
mov ecx, dword [ebp + 0x18]
xor edi, edi
cmp edx, 0xff
jbe 0x43ec81
mov eax, dword [ebp + 0x10]
mov dword [eax], 0x33
jmp 0x43ec81
mov al, byte [esi + 1]
lea ecx, [esi + 1]
cmp al, 0x30
jb 0x43ec73
cmp al, 0x39
ja 0x43ec73
mov esi, ecx
mov al, byte [esi + 1]
lea ecx, [esi + 1]
cmp al, 0x30
jae 0x43ed96
jmp 0x43ec73
mov edi, ecx
neg edi
cmp edi, 0xc
jne 0x43ec7e
cmp byte [esi + 1], 0x7b
jne 0x43ec7e
lea eax, [esi + 2]
push eax
call fcn.00445650
mov ecx, dword [ebp + 0x18]
add esp, 4
test eax, eax
jne 0x43ec81
mov eax, dword [ebp + 0x10]
mov dword [eax], 0x25
jmp 0x43ec81
cmp byte [esi + 1], 0x7b
je 0x43edff
mov eax, dword [ebp + 0x10]
mov dword [eax], 0x51
jmp 0x43ec7c
mov al, byte [esi + 2]
add esi, 2
xor edx, edx
cmp al, 0x30
jb 0x43ee3b
mov edi, 0x10ffff
cmp al, 0x37
ja 0x43ee3b
inc esi
movzx eax, al
test edx, edx
jne 0x43ee21
cmp eax, 0x30
je 0x43ee35
add eax, 0xffffffd0
test ebx, ebx
lea edx, [eax + edx*8]
mov eax, 0xff
cmovne eax, edi
cmp edx, eax
ja 0x43ee6c
mov al, byte [esi]
cmp al, 0x30
jae 0x43ee10
cmp byte [esi], 0x7d
jne 0x43ee8c
test ebx, ebx
je 0x43ec7c
mov ecx, dword [ebp + 0x18]
lea eax, [edx - 0xd800]
xor edi, edi
cmp eax, 0x7ff
ja 0x43ec81
mov eax, dword [ebp + 0x10]
mov dword [eax], 0x49
jmp 0x43ec81
mov al, byte [esi]
cmp al, 0x30
jb 0x43ee7e
cmp al, 0x37
ja 0x43ee7e
mov al, byte [esi + 1]
inc esi
cmp al, 0x30
jae 0x43ee72
mov eax, dword [ebp + 0x10]
mov dword [eax], 0x22
jmp 0x43ec7c
mov eax, dword [ebp + 0x10]
mov dword [eax], 0x50
jmp 0x43ec7c
mov ecx, dword [ebp + 0x18]
test ecx, 0x2000000
je 0x43ef00
movzx eax, byte [esi + 1]
test byte [eax + 0x5f2a88], 8
je 0x43f044
movzx ecx, byte [esi + 2]
test byte [ecx + 0x5f2a88], 8
je 0x43ec7c
mov edx, eax
cmp edx, 0x61
jb 0x43eed1
sub edx, 0x20
cmp edx, 0x41
sbb eax, eax
and eax, 0xfffffff9
add eax, 0x37
sub edx, eax
cmp ecx, 0x61
jb 0x43eee6
sub ecx, 0x20
cmp ecx, 0x41
sbb eax, eax
shl edx, 4
and eax, 0xfffffff9
add eax, 0x37
sub edx, eax
add edx, ecx
add esi, 2
jmp 0x43ec7c
xor edx, edx
cmp byte [esi + 1], 0x7b
jne 0x43efb0
movzx ecx, byte [esi + 2]
add esi, 2
test byte [ecx + 0x5f2a88], 8
je 0x43ef5f
mov edi, 0x10ffff
inc esi
test edx, edx
jne 0x43ef2b
cmp ecx, 0x30
je 0x43ef53
cmp ecx, 0x61
jb 0x43ef33
sub ecx, 0x20
cmp ecx, 0x41
sbb eax, eax
shl edx, 4
and eax, 0xfffffff9
add eax, 0x37
sub edx, eax
mov eax, 0xff
add edx, ecx
test ebx, ebx
cmovne eax, edi
cmp edx, eax
ja 0x43ef76
movzx ecx, byte [esi]
test byte [ecx + 0x5f2a88], 8
jne 0x43ef21
cmp byte [esi], 0x7d
je 0x43ee40
mov eax, dword [ebp + 0x10]
mov dword [eax], 0x4f
jmp 0x43ec7c
movzx eax, byte [esi]
test byte [eax + 0x5f2a88], 8
je 0x43ee7e
nop word [eax + eax]
movzx eax, byte [esi + 1]
inc esi
test byte [eax + 0x5f2a88], 8
jne 0x43ef90
mov eax, dword [ebp + 0x10]
mov dword [eax], 0x22
jmp 0x43ec7c
movzx eax, byte [esi + 1]
inc edi
test byte [eax + 0x5f2a88], 8
je 0x43ec7c
movzx ecx, byte [esi + 1]
inc esi
cmp ecx, 0x61
jb 0x43efcf
sub ecx, 0x20
cmp ecx, 0x41
sbb eax, eax
shl edx, 4
and eax, 0xfffffff9
add eax, 0x37
sub edx, eax
add edx, ecx
cmp edi, 2
jl 0x43efb0
jmp 0x43ec7c
movzx edx, byte [esi + 1]
inc esi
test edx, edx
jne 0x43f002
mov eax, dword [ebp + 0x10]
mov dword [eax], 2
jmp 0x43ec7c
cmp edx, 0x7f
jbe 0x43f015
mov eax, dword [ebp + 0x10]
mov dword [eax], 0x44
jmp 0x43ec7c
lea eax, [edx - 0x61]
cmp eax, 0x19
ja 0x43f020
sub edx, 0x20
xor edx, 0x40
jmp 0x43ec7c
mov ecx, dword [ebp + 0x18]
xor edi, edi
test cl, 0x40
je 0x43ec81
mov eax, dword [ebp + 0x10]
mov dword [eax], 3
jmp 0x43ec81
xor edi, edi
jmp 0x43ec81