Function at 0x433d50
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x44
mov edi, dword [ebp + 0x10]
mov eax, dword [ebp + 8]
test edi, edi
je 0x433e03
mov edx, dword [ebp + 0xc]
lea eax, [edx + edi]
mov esi, edx
jmp 0x433d86
add edx, 2
cmp ecx, eax
cmovne ecx, edx
nop dword [eax]
cmp ecx, eax
mov edx, ecx
je 0x433dd7
movzx ebx, byte [edx]
lea ecx, [edx + 1]
test bl, bl
jns 0x433d80
cmp bl, 0xe0
jb 0x433d71
cmp bl, 0xed
jne 0x433db6
cmp ecx, eax
je 0x433dd7
lea ecx, [edx + 2]
cmp ecx, eax
je 0x433dd7
cmp byte [edx + 1], 0x9f
ja 0x433e46
add edx, 3
mov ecx, edx
jmp 0x433d80
add edx, 2
cmp ecx, eax
cmove edx, ecx
xor ecx, ecx
cmp edx, eax
setne cl
add ecx, edx
cmp bl, 0xf0
jb 0x433d80
xor edx, edx
cmp ecx, eax
setne dl
add ecx, edx
jmp 0x433d80
mov eax, dword [ebp + 8]
cmp edi, 2
jb 0x433e03
cmp byte [esi], 0x2d
mov edx, esi
jne 0x433e03
cmp edi, 2
jne 0x433e0f
movzx ecx, word [edx]
cmp ecx, 0x2d2d
je 0x433e5e
movzx ecx, word [edx]
cmp ecx, 0x2d2d
jne 0x433e1a
jmp 0x433e3d
mov byte [eax + 0x10], 3
add esp, 0x44
pop esi
pop edi
pop ebx
pop ebp
ret
movzx ecx, word [edx]
cmp ecx, 0x2d2d
je 0x433e67
movzx ecx, byte [edx + 1]
cmp cl, 0xbf
jle 0x43436e
inc edx
mov eax, 1
mov esi, 0xffffffff
movzx ecx, cl
or ecx, 0x10
cmp ecx, 0x3d
jne 0x433e8c
mov eax, dword [ebp + 8]
mov byte [eax + 0x10], 5
jmp 0x433e07
movzx ebx, byte [esi]
mov edx, esi
mov dword [ebp - 0x20], eax
test bl, bl
js 0x433f95
inc edx
xor edi, edi
jmp 0x43401e
mov eax, dword [ebp + 8]
mov byte [eax + 0x10], 4
jmp 0x433e07
movzx ecx, byte [edx + 2]
cmp cl, 0xbf
jle 0x434393
add edx, 2
mov eax, 2
mov esi, 0xfffffffe
movzx ecx, cl
or ecx, 0x10
cmp ecx, 0x3d
je 0x433e3d
add esi, edi
mov dword [ebp - 0x14], eax
xor ebx, ebx
mov eax, edx
mov dword [ebp - 0x10], edx
mov ecx, esi
jmp 0x433eb0
mov eax, dword [ebp - 0x10]
mov ecx, esi
sub ecx, ebx
lea eax, [eax + ebx]
jb 0x433f4f
cmp ecx, 8
jae 0x433ee0
xor edx, edx
test ecx, ecx
je 0x433eee
nop dword [eax + eax]
cmp byte [eax + edx], 0x3d
je 0x433ef2
inc edx
cmp ecx, edx
jne 0x433ec0
xor eax, eax
mov edx, ecx
jmp 0x433f00
push ecx
push eax
push 0x3d
call fcn.00417cb0
add esp, 0xc
jmp 0x433f00
xor eax, eax
jmp 0x433f00
mov eax, 1
nop word [eax + eax]
cmp eax, 1
jne 0x433f4f
add edx, ebx
mov ebx, edx
inc ebx
je 0x433ea0
cmp esi, ebx
jb 0x433ea0
mov eax, dword [ebp - 0x10]
cmp byte [eax + edx], 0x3d
jne 0x433ea0
mov edi, dword [ebp - 0x10]
mov ecx, edx
mov edx, edi
push esi
call fcn.00432720
add esp, 4
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x1c], edx
mov ecx, ebx
mov edx, edi
push esi
call fcn.00432750
add esp, 4
mov edi, dword [ebp - 0x18]
mov esi, dword [ebp - 0x1c]
test eax, eax
sete cl
or cl, 2
mov dword [ebp - 0x10], edi
jmp 0x433f53
mov cl, 3
xor eax, eax
mov edi, dword [ebp + 8]
mov ebx, dword [ebp - 0x14]
mov ch, byte [ebp - 0x42]
mov dword [edi], ebx
mov ebx, dword [ebp - 0x10]
mov dword [edi + 4], ebx
mov dword [edi + 8], esi
movzx esi, word [ebp - 0x44]
mov byte [edi + 0x10], 2
mov byte [edi + 0x13], ch
mov word [edi + 0x11], si
mov dword [edi + 0x14], eax
mov dword [edi + 0x18], edx
movzx esi, word [ebp - 0x30]
movzx edx, byte [ebp - 0x2e]
mov byte [edi + 0x20], cl
mov eax, edi
mov word [edi + 0x21], si
mov byte [edi + 0x23], dl
jmp 0x433e07
mov esi, edx
movzx edx, byte [edx + 1]
mov eax, ebx
and eax, 0x1f
and edx, 0x3f
cmp bl, 0xdf
jbe 0x433fd2
movzx ecx, byte [esi + 2]
shl edx, 6
and ecx, 0x3f
or ecx, edx
cmp bl, 0xf0
jb 0x433fe0
movzx ebx, byte [esi + 3]
and eax, 7
shl ecx, 6
add esi, 4
shl eax, 0x12
and ebx, 0x3f
or ebx, ecx
or ebx, eax
jmp 0x433fea
shl eax, 6
add esi, 2
or eax, edx
mov edx, esi
mov ebx, eax
jmp 0x433ff4
shl eax, 0xc
add esi, 3
or ecx, eax
mov ebx, ecx
mov edx, esi
cmp ebx, 0xffff
ja 0x433ffb
mov eax, dword [ebp - 0x20]
xor edi, edi
jmp 0x43401e
add ebx, 0xffff0000
mov eax, ebx
and ebx, 0x3ff
shr eax, 0xa
or ebx, 0xdc00
or eax, 0xd800
mov edi, ebx
mov ebx, eax
mov eax, dword [ebp - 0x20]
sub eax, edx
mov ecx, 0xffffffff
mov esi, 3
add eax, 3
cmovae ecx, eax
shr ecx, 2
cmp di, 1
sbb ecx, 0xffffffff
cmp ecx, 4
cmovae esi, ecx
cmp esi, 0x3ffffffe
ja 0x434385
mov dword [ebp - 0x18], edi
lea edi, [esi + esi + 2]
test edi, edi
js 0x43438c
mov eax, dword [0x56bbf8]
mov dword [ebp - 0x10], edx
mov eax, dword [eax]
test eax, eax
jne 0x43407e
call sub.kernel32.dll_GetProcessHeap
test eax, eax
je 0x434378
mov ecx, dword [0x56bbf8]
mov dword [ecx], eax
push edi
push 0
push eax
call sub.kernel32.dll_HeapAlloc
test eax, eax
mov dword [ebp - 0x14], eax
je 0x434378
mov eax, dword [ebp - 0x14]
inc esi
xor edi, edi
mov ecx, dword [ebp - 0x18]
mov word [eax], bx
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], esi
mov dword [ebp - 0x28], 1
jmp 0x4340cf
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x1c]
mov edx, edi
mov edi, ebx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
mov word [eax + edi*2 + 2], cx
add edi, 2
mov ecx, edx
mov dword [ebp - 0x28], edi
mov edi, esi
test cx, cx
je 0x4340f0
mov dword [ebp - 0x18], 0
xor edx, edx
lea esi, [edi + 1]
cmp esi, dword [ebp - 0x2c]
jne 0x4340bd
jmp 0x4341d0
mov ebx, dword [ebp - 0x10]
cmp ebx, dword [ebp - 0x20]
je 0x434209
movzx ecx, byte [ebx]
test cl, cl
js 0x434116
inc ebx
xor edx, edx
mov dword [ebp - 0x10], ebx
lea esi, [edi + 1]
cmp esi, dword [ebp - 0x2c]
jne 0x4340bd
jmp 0x4341d0
movzx esi, byte [ebx + 1]
mov eax, ecx
and eax, 0x1f
and esi, 0x3f
cmp cl, 0xdf
jbe 0x43418d
movzx edx, byte [ebx + 2]
shl esi, 6
and edx, 0x3f
or edx, esi
cmp cl, 0xf0
jb 0x4341aa
movzx ecx, byte [ebx + 3]
and eax, 7
shl edx, 6
add ebx, 4
shl eax, 0x12
mov dword [ebp - 0x10], ebx
and ecx, 0x3f
or ecx, edx
or ecx, eax
cmp ecx, 0xffff
jbe 0x4341bf
add ecx, 0xffff0000
mov edx, ecx
mov eax, ecx
and edx, 0x3ff
shr eax, 0xa
or edx, 0xdc00
or eax, 0xd800
mov ecx, edx
mov dword [ebp - 0x18], ecx
mov ecx, eax
lea esi, [edi + 1]
cmp esi, dword [ebp - 0x2c]
jne 0x4340bd
jmp 0x4341d0
shl eax, 6
add ebx, 2
xor edx, edx
or eax, esi
mov dword [ebp - 0x10], ebx
mov ecx, eax
lea esi, [edi + 1]
cmp esi, dword [ebp - 0x2c]
jne 0x4340bd
jmp 0x4341d0
shl eax, 0xc
add ebx, 3
or edx, eax
mov dword [ebp - 0x10], ebx
mov ecx, edx
cmp ecx, 0xffff
ja 0x43415a
xor edx, edx
lea esi, [edi + 1]
cmp esi, dword [ebp - 0x2c]
jne 0x4340bd
nop dword [eax]
mov eax, dword [ebp - 0x20]
mov ebx, edi
mov edi, dword [ebp - 0x18]
mov dword [ebp - 0x1c], ecx
mov ecx, 0xffffffff
sub eax, dword [ebp - 0x10]
add eax, 3
cmovb eax, ecx
shr eax, 2
cmp di, 1
sbb eax, 0
add eax, 2
mov edx, esi
lea ecx, [ebp - 0x30]
push eax
call fcn.00432bf0
add esp, 4
jmp 0x4340b0
mov esi, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x2c]
lea eax, [edi + 1]
mov dl, 3
cmp eax, 2
jae 0x43421e
mov eax, dword [ebp + 8]
jmp 0x434227
cmp word [esi], 0x2d
mov eax, dword [ebp + 8]
je 0x43424b
test ecx, ecx
mov byte [eax + 0x10], dl
je 0x433e07
push esi
push 0
mov ecx, dword [0x56bbf8]
push dword [ecx]
mov esi, eax
call sub.kernel32.dll_HeapFree
mov eax, esi
jmp 0x433e07
cmp edi, 1
jne 0x434258
cmp dword [esi], 0x2d002d
je 0x4342b7
xor ebx, ebx
cmp dword [esi], 0x2d002d
sete bl
mov dword [ebp - 0x14], ebx
not ebx
add ebx, edi
mov edx, ebx
mov dword [ebp - 0x10], ebx
inc ebx
mov dl, 5
je 0x434227
mov edi, dword [ebp - 0x14]
lea edi, [esi + edi*2 + 2]
cmp word [edi], 0x2d
je 0x434227
cmp word [edi], 0x3d
mov dword [ebp - 0x18], edi
je 0x434227
mov edi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x1c], ecx
xor edx, edx
inc edi
lea ecx, [eax + eax + 2]
mov dword [ebp - 0x14], edi
lea edi, [esi + edi*2 + 2]
cmp word [edi - 2], 0x3d
je 0x4342be
inc edx
add edi, 2
add ecx, 0xfffffffe
jne 0x4342a1
xor edi, edi
mov edx, ebx
jmp 0x4342c1
mov dl, 4
jmp 0x434227
sub dword [ebp - 0x10], edx
push edx
push dword [ebp - 0x18]
lea eax, [ebp - 0x30]
push eax
call fcn.004c5b70
add esp, 0xc
movsd xmm0, qword [ebp - 0x30]
movsd xmm1, qword [ebp - 0x28]
test edi, edi
movsd qword [ebp - 0x3c], xmm1
movsd qword [ebp - 0x44], xmm0
je 0x43431e
push dword [ebp - 0x10]
push edi
lea eax, [ebp - 0x30]
push eax
call fcn.004c5b70
add esp, 0xc
mov eax, dword [ebp - 0x28]
movsd xmm0, qword [ebp - 0x30]
movzx ecx, byte [ebp - 0x24]
movzx edi, word [ebp - 0x23]
movzx edx, byte [ebp - 0x21]
mov dword [ebp - 0x48], eax
movsd qword [ebp - 0x50], xmm0
mov word [ebp - 0x34], di
mov byte [ebp - 0x32], dl
jmp 0x434320
mov cl, 3
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0x14]
movsd xmm0, qword [ebp - 0x44]
movsd xmm1, qword [ebp - 0x3c]
cmp dword [ebp - 0x1c], 0
mov dword [edx], eax
movsd qword [edx + 4], xmm0
movsd xmm0, qword [ebp - 0x50]
mov eax, dword [ebp - 0x48]
movsd qword [edx + 0xc], xmm1
mov dword [edx + 0x1c], eax
movsd qword [edx + 0x14], xmm0
mov byte [edx + 0x20], cl
movzx ecx, word [ebp - 0x34]
mov eax, edx
mov word [edx + 0x21], cx
mov ch, byte [ebp - 0x32]
mov byte [edx + 0x23], ch
jne 0x434232
jmp 0x433e07
push 0x5179e0
push edi
push 1
jmp 0x43439b
push 2
push edi
call fcn.004085f0
add esp, 8
ud2
call fcn.004085b0
ud2
call fcn.004085b0
ud2
push 0x5179d0
push edi
push 2
push edi
push edx
call fcn.00418f30
add esp, 0x14
ud2