Function at 0x407c90
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x34
mov al, byte [esp + 3]
xorps xmm0, xmm0
push ebx
push esi
push edi
mov dword [esp + 0x18], edx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], 0x33343556
movups xmmword [esp + 0x24], xmm0
mov dword [esp + 0x34], 0
mov byte [esp + 0x38], 0
nop word [eax + eax]
mov esi, dword [0x4b6478]
mov edi, dword [0x4b6474]
nop dword [eax]
xor edx, edx
mov dword [esp + 0x10], edx
cmp edx, 0x19
jae 0x408561
mov bh, byte [esp + edx + 0x20]
movzx ecx, bh
mov dword [esp + 0x14], ecx
nop word [eax + eax]
cmp esi, edx
ja 0x408558
lea ecx, [edi + 1]
cmp esi, ecx
jae 0x407d2c
mov cl, byte [esp + 0x14]
add edx, 0xd4d3e789
and cl, dl
mov al, bh
add cl, cl
add dl, 0x41
sub al, cl
add al, dl
mov edx, dword [esp + 0x10]
jmp 0x407d53
je 0x4084fc
lea ecx, [edi + 5]
cmp esi, ecx
je 0x4084bd
lea ecx, [edi + 7]
cmp esi, ecx
je 0x4084a7
lea ecx, [edi + 6]
cmp esi, ecx
je 0x408476
cmp edi, edx
ja 0x40854f
lea ecx, [edi + 0x10]
cmp esi, ecx
jae 0x407d7f
mov cl, byte [esp + 0x14]
add edx, 0x7561fe3d
and cl, dl
mov al, bh
add cl, cl
add dl, 0x55
sub al, cl
add al, dl
mov edx, dword [esp + 0x10]
jmp 0x407db0
lea ecx, [edi + 1]
cmp esi, ecx
je 0x408467
lea ecx, [edi + 2]
cmp esi, ecx
je 0x408451
lea ecx, [edi + 3]
cmp esi, ecx
je 0x40843d
lea ecx, [edi + 6]
cmp esi, ecx
je 0x4083d6
nop dword [eax + eax]
lea ecx, [edi + esi]
cmp ecx, edx
jbe 0x4081e2
nop dword [eax + eax]
lea eax, [edi + 0x10]
cmp esi, eax
je 0x4081d0
lea eax, [edi + 0x64]
cmp esi, eax
je 0x4081b3
lea eax, [edi + 0x80]
cmp esi, eax
je 0x40819d
lea eax, [edi + 0x61]
cmp esi, eax
je 0x408183
lea eax, [edi + 1]
cmp esi, eax
je 0x40816f
lea eax, [edi + 2]
cmp esi, eax
je 0x408148
lea eax, [edi + 8]
cmp esi, eax
je 0x408134
lea eax, [edi + 0x28]
cmp esi, eax
je 0x40811a
lea eax, [edi + 0x40]
cmp esi, eax
je 0x4080fc
lea eax, [edi + 0x3e8]
cmp esi, eax
je 0x407dc0
lea esi, [edi + 9]
lea edi, [esi + 0x41]
lea eax, [edi + 0x40]
cmp esi, eax
jb 0x40853b
lea eax, [edi + 0x42]
cmp esi, eax
jb 0x408527
lea eax, [edi + 0x400]
cmp esi, eax
jb 0x407f52
lea eax, [edi + 0x5a]
cmp esi, eax
jb 0x407f3e
lea eax, [edi + 0x2a]
cmp esi, eax
jb 0x407f2a
lea eax, [edi + 5]
cmp esi, eax
jb 0x4080c7
lea eax, [edi + 0x10]
cmp esi, eax
jb 0x408092
lea eax, [edi + 0x20]
cmp esi, eax
jb 0x408065
lea eax, [edi + 0x80]
cmp esi, eax
jb 0x40804c
lea eax, [edi + 0x61]
cmp esi, eax
jb 0x407dc0
lea esi, [edi + 8]
lea edi, [esi + 0x7a]
lea eax, [edi + 0x28]
cmp esi, eax
ja 0x40802e
lea eax, [edi + 0x200]
cmp esi, eax
ja 0x408014
lea eax, [edi + 0x3e8]
cmp esi, eax
ja 0x408000
lea eax, [edi + 0x41]
cmp esi, eax
ja 0x407fd9
lea eax, [edi + 3]
cmp esi, eax
ja 0x407fc5
lea eax, [edi + 4]
cmp esi, eax
ja 0x407fab
lea eax, [edi + 0xa]
cmp esi, eax
ja 0x407f95
lea eax, [edi + 0x42]
cmp esi, eax
ja 0x407f78
lea eax, [edi + 0x64]
cmp esi, eax
ja 0x407f66
lea eax, [edi + 0x1000]
cmp esi, eax
ja 0x407dc0
lea esi, [edi + 0x10]
lea edi, [esi + 0x2a]
jmp 0x407dc0
lea eax, [edx + 0x63]
mov cl, al
and cl, bh
add cl, cl
sub al, cl
add al, 0x4b
add al, bh
jmp 0x407db0
lea eax, [edx + 0x51]
mov cl, al
and cl, bh
add cl, cl
sub al, cl
sub al, 0x37
add al, bh
jmp 0x407d53
lea eax, [edx + 0x3f]
mov cl, al
and cl, bh
add cl, cl
sub al, cl
add al, 0x47
add al, bh
jmp 0x407d00
lea eax, [edx - 0x18]
mov cl, al
and cl, bh
add cl, cl
sub al, cl
sub al, 0x58
jmp 0x408483
sub dl, 0x2a
mov al, 0x13
mov cl, dl
inc edi
and cl, bh
sub al, cl
add al, al
add al, dl
mov edx, dword [esp + 0x10]
dec edx
add al, bh
inc edx
jmp 0x407ce2
lea eax, [edx - 0x3c]
dec edx
mov cl, al
and cl, bh
add cl, cl
sub al, cl
sub al, 0x5c
add al, bh
inc edx
jmp 0x407ce2
sub dl, 0x4e
mov al, 0x11
mov cl, dl
and cl, bh
sub al, cl
add al, al
add al, dl
mov edx, dword [esp + 0x10]
mov bl, dl
jmp 0x4084cc
lea eax, [edx - 0x60]
mov cl, al
and cl, bh
add cl, cl
sub al, cl
sub al, 0x60
add al, bh
jmp 0x4084e4
sub dl, 0x72
mov al, 0xf
mov cl, dl
and cl, bh
sub al, cl
add al, al
add al, dl
or edx, 0xffffffff
add al, bh
movzx ecx, al
sub edx, ecx
add dword [esp + 0x10], edx
mov edx, dword [esp + 0x10]
inc edx
jmp 0x407ce2
lea eax, [edx + 0x7c]
mov bl, dl
mov cl, al
and cl, bh
add cl, cl
sub al, cl
sub al, 0x64
jmp 0x4083e5
add dl, 0x6a
mov al, 0xd
mov cl, dl
and cl, bh
sub al, cl
add al, al
add al, dl
mov edx, dword [esp + 0x10]
add al, bh
jmp 0x408407
lea eax, [edx + 0x58]
mov cl, al
and cl, bh
add cl, cl
sub al, cl
movzx ecx, byte [esp + edx + 0x20]
add ecx, edi
sub al, 0x68
add edx, ecx
add al, bh
inc edx
jmp 0x407ce2
lea eax, [edx - 0x55]
mov cl, al
and cl, bh
add cl, cl
sub al, cl
add al, 0x53
add al, bh
mov byte [esp + edx + 0x20], al
inc edx
jmp 0x407ce2
lea eax, [edx - 0x67]
mov cl, al
and cl, bh
add cl, cl
sub al, cl
sub al, 0x2f
add al, bh
cmp edi, 0x400
jb 0x40805b
lea eax, [edx - 0x6a]
mov cl, al
and cl, bh
add cl, cl
sub al, cl
add al, bh
add al, al
sub al, 0x34
jmp 0x408485
lea eax, [edx - 0x79]
mov cl, al
and cl, bh
add cl, cl
sub al, cl
add al, 0x4f
add al, bh
cmp esi, 0x1000
jae 0x40839f
lea ecx, [edi + 0x10]
cmp esi, ecx
jbe 0x408328
lea eax, [edx - 0x1e]
mov cl, al
and cl, bh
add cl, cl
sub al, cl
sub al, 0x2e
jmp 0x408072
lea eax, [edx + 0x75]
mov cl, al
and cl, bh
add cl, cl
sub al, cl
sub al, 0x33
add al, bh
lea ecx, [edi + esi]
cmp ecx, 0x61
je 0x4083c1
lea ecx, [edi + 8]
cmp esi, ecx
jbe 0x40828c
lea eax, [edx - 0x5b]
mov cl, al
and cl, bh
add cl, cl
sub al, cl
add al, 0x7d
jmp 0x40809f
lea eax, [edx + 0x6e]
mov cl, al
and cl, bh
add cl, cl
sub al, cl
movzx ecx, byte [esp + edx + 0x20]
add ecx, edi
sub al, 2
add edx, ecx
add al, bh
inc edx
jmp 0x407ce2
add dl, 0x5c
mov al, 0x3e
mov cl, dl
and cl, bh
sub al, cl
add al, al
add al, dl
mov edx, dword [esp + 0x10]
add al, bh
jmp 0x408407
mov bl, dl
lea eax, [ebx + 0x4a]
mov cl, al
and cl, bh
add cl, cl
sub al, cl
sub al, 6
jmp 0x4083e5
add dl, 0x38
mov al, 0x3c
mov cl, dl
and cl, bh
sub al, cl
add al, al
add al, dl
or edx, 0xffffffff
add al, bh
movzx ecx, al
sub edx, ecx
add dword [esp + 0x10], edx
mov edx, dword [esp + 0x10]
inc edx
jmp 0x407ce2
lea eax, [edx + 0x26]
mov cl, al
and cl, bh
add cl, cl
sub al, cl
sub al, 0xa
add al, bh
jmp 0x4084e4
mov bl, dl
mov al, 0x3a
lea edx, [ebx + 0x14]
mov cl, dl
and cl, bh
sub al, cl
add al, al
add al, dl
mov edx, dword [esp + 0x10]
jmp 0x4084cc
lea eax, [edx + 2]
dec edx
mov cl, al
and cl, bh
add cl, cl
sub al, cl
sub al, 0xe
add al, bh
inc edx
jmp 0x407ce2
sub dl, 0x10
mov al, 0x38
mov cl, dl
inc edi
and cl, bh
sub al, cl
add al, al
add al, dl
mov edx, dword [esp + 0x10]
dec edx
add al, bh
inc edx
jmp 0x407ce2
lea eax, [edx - 0x22]
mov cl, al
and cl, bh
add cl, cl
sub al, cl
sub al, 0x12
jmp 0x408483
lea ecx, [edi + 0x41]
cmp esi, ecx
jae 0x4081fb
lea eax, [edx - 0x77]
mov cl, al
and cl, bh
add cl, cl
sub al, cl
add al, 0x41
jmp 0x4080d4
lea ecx, [edi + 1]
cmp esi, ecx
jne 0x408220
lea eax, [edx + 0x7a]
mov cl, al
and cl, bh
add cl, cl
sub al, cl
movzx ecx, byte [esp + edx + 0x20]
add ecx, edi
sub al, 0x56
add edx, ecx
add al, bh
inc edx
jmp 0x407ce2
inc ecx
cmp esi, ecx
jne 0x408239
mov bl, dl
lea eax, [ebx - 0x62]
mov cl, al
and cl, bh
add cl, cl
sub al, cl
sub al, 0x52
jmp 0x4083e5
lea ecx, [edi + 3]
cmp esi, ecx
jne 0x408267
sub dl, 0x50
mov al, 0x18
mov cl, dl
and cl, bh
sub al, cl
add al, al
add al, dl
or edx, 0xffffffff
add al, bh
movzx ecx, al
sub edx, ecx
add dword [esp + 0x10], edx
mov edx, dword [esp + 0x10]
inc edx
jmp 0x407ce2
lea ecx, [edi + 6]
cmp esi, ecx
jne 0x4080d6
mov bl, dl
mov al, 0x1a
lea edx, [ebx - 0x2c]
mov cl, dl
and cl, bh
sub al, cl
add al, al
add al, dl
mov edx, dword [esp + 0x10]
jmp 0x4084cc
lea ecx, [edi + 1]
cmp esi, ecx
jne 0x4082a5
lea eax, [edx - 0x49]
mov cl, al
and cl, bh
add cl, cl
sub al, cl
dec al
jmp 0x408483
lea ecx, [edi + 2]
cmp esi, ecx
jne 0x4082c2
lea eax, [edx - 0x25]
dec edx
mov cl, al
and cl, bh
add cl, cl
sub al, cl
add al, 3
add al, bh
inc edx
jmp 0x407ce2
lea ecx, [edi + 4]
cmp esi, ecx
jne 0x4082dd
lea eax, [edx - 1]
mov cl, al
and cl, bh
add cl, cl
sub al, cl
add al, 7
add al, bh
jmp 0x4084e4
lea ecx, [edi + 5]
cmp esi, ecx
jne 0x408309
lea eax, [edx + 0x11]
or edx, 0xffffffff
mov cl, al
and cl, bh
add cl, cl
sub al, cl
sub al, 0x77
add al, bh
movzx ecx, al
sub edx, ecx
add dword [esp + 0x10], edx
mov edx, dword [esp + 0x10]
inc edx
jmp 0x407ce2
lea ecx, [edi + 3]
cmp esi, ecx
jne 0x4080a1
lea eax, [edx + 0x35]
mov cl, al
and cl, bh
add cl, cl
sub al, cl
sub al, 0x73
add al, bh
jmp 0x408407
lea ecx, [edi + 1]
cmp esi, ecx
jne 0x408353
sub dl, 0xc
mov al, 0x2a
mov cl, dl
and cl, bh
sub al, cl
add al, al
add al, dl
mov edx, dword [esp + 0x10]
add al, bh
movzx ecx, byte [esp + edx + 0x20]
add ecx, edi
add edx, ecx
inc edx
jmp 0x407ce2
inc ecx
cmp esi, ecx
jne 0x40836f
mov bl, dl
mov al, 0x2c
lea edx, [ebx + 0x18]
mov cl, dl
and cl, bh
sub al, cl
add al, al
add al, dl
mov edx, dword [esp + 0x10]
jmp 0x4083e5
lea ecx, [edi + 3]
cmp esi, ecx
jne 0x408074
lea eax, [edx + 0x2a]
or edx, 0xffffffff
mov cl, al
and cl, bh
add cl, cl
sub al, cl
sub al, 0x26
add al, bh
movzx ecx, al
sub edx, ecx
add dword [esp + 0x10], edx
mov edx, dword [esp + 0x10]
inc edx
jmp 0x407ce2
mov eax, dword [esp + 0x10]
mov bl, dl
mov al, byte [esp + eax + 0x20]
lea edx, [ebx - 0x58]
mov cl, dl
and cl, bh
sub al, cl
add al, 0x34
add al, al
add al, dl
mov edx, dword [esp + 0x10]
jmp 0x4084ce
mov bl, dl
lea eax, [ebx - 0x46]
mov cl, al
and cl, bh
add cl, cl
sub al, cl
sub al, byte [esp + edx + 0x20]
sub al, 0x16
jmp 0x4083e5
mov bl, dl
lea eax, [ebx - 0x45]
mov cl, al
and cl, bh
add cl, cl
sub al, cl
sub al, 0x1d
add al, bh
add bl, 0x43
inc edi
mov cl, bl
and cl, bh
add cl, cl
sub bl, cl
add bl, 0x2b
add bl, bh
movzx ecx, bl
add ecx, edi
mov byte [esp + edx + 0x20], bl
sub edx, ecx
mov dword [esp + 0x10], edx
mov bl, dl
inc esi
sub bl, 0x34
mov dl, 0x36
mov cl, bl
and cl, bh
sub dl, cl
mov ecx, dword [esp + 0x10]
add dl, dl
add dl, bl
add dl, bh
mov byte [esp + ecx + 0x20], dl
or ecx, 0xffffffff
mov edx, dword [esp + 0x10]
sub ecx, esi
add edx, ecx
movzx ecx, byte [esp + edx + 0x20]
add ecx, edi
add edx, ecx
inc edx
jmp 0x407ce2
lea eax, [edx - 0x69]
mov cl, al
and cl, bh
add cl, cl
sub al, cl
sub al, 0x21
add al, bh
jmp 0x4084e4
lea eax, [edx + 0x73]
dec edx
mov cl, al
and cl, bh
add cl, cl
sub al, cl
sub al, 0x25
add al, bh
inc edx
jmp 0x407ce2
lea eax, [edx + 0x4f]
mov cl, al
and cl, bh
add cl, cl
sub al, cl
sub al, 0x29
jmp 0x408483
lea eax, [edx + 0x2b]
mov cl, al
and cl, bh
add cl, cl
sub al, cl
sub al, 0x2d
add al, bh
add dl, 0x1f
mov cl, dl
and cl, bh
add cl, cl
sub dl, cl
mov ecx, dword [esp + 0x10]
add dl, 0x27
add dl, bh
mov byte [esp + ecx + 0x20], dl
mov edx, ecx
inc edi
dec edx
inc edx
jmp 0x407ce2
lea eax, [edx + 7]
mov cl, al
and cl, bh
add cl, cl
sub al, cl
sub al, 0x31
add al, bh
dec edx
inc edx
jmp 0x407ce2
mov bl, dl
lea eax, [ebx - 0xb]
mov cl, al
and cl, bh
add cl, cl
sub al, cl
add al, 0x4d
add al, bh
add bl, 0x31
mov cl, bl
and cl, bh
add cl, cl
sub bl, cl
sub bl, 0x57
add bl, bh
add bl, al
mov byte [esp + edx + 0x20], bl
add esi, edi
or edx, 0xffffffff
movzx ecx, al
sub edx, ecx
add dword [esp + 0x10], edx
mov edx, dword [esp + 0x10]
inc edx
jmp 0x407ce2
mov eax, dword [esp + 0x14]
lea ecx, [edx + 0x7e7bb69b]
and al, cl
add al, al
mov dword [esp + 0x14], eax
mov al, bh
sub al, byte [esp + 0x14]
sub al, 0x3d
add al, cl
movzx ecx, byte [esp + edx + 0x20]
add ecx, edi
add edx, ecx
inc edx
jmp 0x407ce2
lea eax, [edx + 0x2d]
mov cl, al
and cl, bh
add cl, cl
sub al, cl
sub al, 0x3b
add al, bh
jmp 0x407ce0
lea eax, [edx + 0x1b]
mov cl, al
and cl, bh
add cl, cl
sub al, cl
add al, 0x43
add al, bh
jmp 0x407cd0
mov ecx, dword [esp + 0x15f902c]
jmp 0x408565
mov ecx, dword [esp + 0x17377b5]
jmp 0x408565
mov ecx, dword [esp + 0x20]
sub ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov eax, edx
shr eax, cl
mov ecx, dword [esp + 0x18]
pop edi
shl edx, cl
pop esi
or eax, edx
pop ebx
mov esp, ebp
pop ebp
ret