Function at 0x421020
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
xor dword [0x4454f4], 0x21010a08
and dword [0x43f4b8], 0x45490096
fld dword [0x469168]
fmul dword [0x46f31c]
sub esp, 0x18
fadd dword [0x470dac]
fld dword [0x46cf04]
fsub dword [0x46fdec]
fld dword [0x470dac]
fld1
fsub st(1), st(0)
fxch st(1)
fstp dword [0x470dac]
fxch st(2)
fcompi st(1)
fstp st(0)
jbe 0x42109e
fld dword [0x46778c]
fadd qword [0x4524a0]
fadd dword [0x4722c4]
fadd qword [0x44e1f0]
fstp qword [0x44e1f0]
fsubr dword [0x4722c4]
fstp dword [0x4722c4]
jmp 0x4210a0
fstp st(0)
mov eax, dword [0x4432d0]
shl eax, 6
xor eax, 0xfcc43605
mov word [0x460d14], ax
dec dword [0x43c780]
mov eax, dword [0x43e5a8]
mov ecx, dword [0x43c780]
imul eax, eax, 0x4a3103fd
push ebx
and ecx, eax
push esi
xor ebx, ebx
cmp ecx, 0x2b299e6c
push edi
jge 0x4210e3
add dword [0x444950], 0x6affd567
mov edx, dword [0x43f53c]
imul edx, edx, 0x2e6efbd2
push 0x41
mov dword [0x43f53c], edx
push 0x38d0
call fcn.0040d6f0
mov dword [ebp - 0xc], eax
mov ax, word [0x462f6e]
mov edx, dword [0x44599c]
movsx ecx, ax
mov eax, 0xcbe5acf9
sub eax, ecx
or edx, eax
or edx, 0xaa15a996
push 4
mov dword [0x44599c], edx
push 0x3338
call fcn.0040d6f0
mov esi, eax
mov eax, dword [0x43fd00]
imul eax, eax, 0x4da3a871
lea ecx, [ebp - 0x10]
push esi
mov word [0x465728], ax
push ecx
call fcn.0040b270
push 4
fld qword [0x454ac8]
push 0x1638
fstp qword [0x45cb98]
call fcn.0040d6f0
mov edi, eax
mov eax, dword [0x43efd0]
or eax, 0x60ec2e8f
and dword [0x43c0c4], eax
push esi
push 4
call fcn.00435030
mov eax, dword [0x445a24]
lea edx, [ebp - 0x14]
add eax, 0x46dac4d4
xor dword [0x4468e0], eax
push edi
push edx
call fcn.0040b270
mov eax, dword [0x4465b8]
and eax, 0x652c7f0a
add esp, 0x30
cmp eax, 0x7c021dd0
jne 0x42121e
fld dword [0x46c0b8]
fsub qword [0x44a7c8]
fsub dword [0x46c3f4]
fld dword [0x472ab8]
fmul dword [0x472cbc]
fsub dword [0x4727f4]
fld dword [0x472cbc]
fadd qword [0x43b230]
fstp dword [0x472cbc]
fxch st(1)
fucompi st(1)
fstp st(0)
lahf
test ah, 0x44
jnp 0x421211
mov cx, word [0x4626e4]
movsx edx, cx
imul edx, edx, 0xa1bfa3ff
or edx, 0x3a13f414
mov dword [0x43d7ec], edx
jmp 0x42123a
mov eax, 0x4eda
mov word [0x461caa], ax
jmp 0x42123a
fld dword [0x46f0ec]
fld qword [0x44ea40]
fld qword [0x4509e0]
fmulp st(2)
fsubrp st(1)
fstp qword [0x44ea40]
push 4
push 0x1743
call fcn.0040d6f0
xor dword [0x446a7c], 0xd2046879
push edi
push 4
mov esi, eax
call fcn.00435030
or dword [0x43cc60], 0x64d5bf14
lea ecx, [ebp - 0x18]
push esi
push ecx
call fcn.0040b270
fld dword [0x467af0]
fsub dword [0x46e8d4]
push esi
push 4
fstp dword [0x467af0]
call fcn.00435030
and dword [0x43f9cc], 0xf414f8c
fld1
add esp, 0x20
cmp dword [ebp + 0xc], ebx
je 0x421685
mov edi, dword [ebp + 8]
fld qword [0x45fb30]
dec dword [ebp + 0xc]
fsub qword [0x45d368]
inc ebx
fstp dword [0x469eb0]
add dword [0x43dff8], 0x7f4f4a57
fld dword [0x46a0d8]
mov dl, byte [edi]
fld qword [0x44e7b8]
mov byte [ebp + ebx - 5], dl
fsub dword [0x4701ec]
fsub dword [0x467864]
fsubp st(1)
fstp dword [0x46a0d8]
fld dword [0x4701ec]
fsub st(1)
fstp dword [0x4701ec]
mov eax, dword [0x444b34]
cmp eax, 0xdc45f51e
jne 0x421343
fld dword [0x46a4f4]
fld dword [0x467ad8]
fmul dword [0x470a60]
fsub dword [0x46d524]
fld dword [0x470a60]
fsub st(3)
fstp dword [0x470a60]
fxch st(1)
fcompi st(1)
fstp st(0)
jb 0x421343
fld dword [0x4709b8]
fadd dword [0x468b3c]
fstp dword [0x4709b8]
xor dword [0x444748], 0xc9969bdc
inc edi
cmp ebx, 3
jne 0x421669
fld dword [0x46a4d0]
fadd dword [0x47068c]
mov cl, byte [ebp - 4]
shr cl, 2
mov byte [ebp - 8], cl
fstp dword [0x46a4d0]
mov edx, dword [0x445178]
or edx, 0x450158
cmp edx, 0xd8fb943d
jle 0x42139d
movzx eax, word [0x46493e]
add eax, 0x18477b0e
and eax, 0xe0afebe4
mov word [0x46479e], ax
movzx ecx, byte [ebp - 4]
and cl, 3
shl cl, 4
mov byte [ebp - 7], cl
and dword [0x43c8b4], 0x52823846
mov dl, byte [ebp - 3]
shr dl, 4
add byte [ebp - 7], dl
add dword [0x43ffa0], 0xf1a981ea
movzx eax, byte [ebp - 3]
and al, 0xf
add al, al
add al, al
mov byte [ebp - 6], al
xor dword [0x441ebc], 0xce272fcd
movzx edx, word [0x461678]
movzx ecx, byte [ebp - 2]
movzx eax, byte [ebp - 2]
shr cl, 6
add byte [ebp - 6], cl
xor edx, 0x41b155b9
and al, 0x3f
mov word [0x461678], dx
mov byte [ebp - 5], al
mov dword [0x446b84], 0x493aafe4
mov ecx, dword [0x43ef58]
xor esi, esi
imul ecx, ecx, 0xc0077089
mov dword [0x43ef58], ecx
jmp 0x421432
fld1
fld dword [0x46c3c8]
fld qword [0x4604a0]
fucompi st(1)
fstp st(0)
lahf
test ah, 0x44
jp 0x421458
mov eax, dword [0x441018]
or eax, 0x626a97e6
sub dword [0x4453a8], eax
cmp byte [ebp + 0x10], 0
je 0x42158e
mov cl, byte [ebp + esi - 8]
cmp cl, 0x3d
jbe 0x42158e
fld dword [0x46c2e8]
fsub dword [0x471f50]
fadd dword [0x46cd70]
fld dword [0x46b754]
fld dword [0x46cd70]
faddp st(3)
fxch st(2)
fstp dword [0x46cd70]
fxch st(1)
fcompi st(1)
fstp st(0)
jbe 0x4214d3
mov edx, dword [0x43e188]
cmp edx, 0xd71a901
jge 0x4214e5
dec dword [0x43f4a0]
mov eax, dword [0x43f4a0]
mov edx, dword [0x444a50]
and eax, edx
and eax, 0xd24db954
xor dword [0x43def8], eax
inc dword [0x444a50]
jmp 0x4214e5
movzx eax, word [0x463afc]
and eax, 0x6289573
mov word [0x463afc], ax
cmp cl, 0x3e
jne 0x421532
mov ecx, dword [0x444e0c]
mov edx, dword [0x43feec]
imul ecx, edx
mov dword [0x444e0c], ecx
mov ecx, dword [ebp + 0x14]
lea eax, [ebp - 0x10]
push eax
call fcn.00416320
mov ecx, dword [0x446b2c]
cmp ecx, 0xb2b4b0ab
jl 0x421582
mov dword [0x447a28], 0x2b3c7c83
add dword [0x4400a4], 0xc759e23
jmp 0x4215ff
mov edx, dword [0x442b14]
mov eax, dword [0x447a8c]
mov ecx, dword [0x443848]
add eax, edx
lea edx, [ecx + eax + 0x25024ad4]
mov ecx, dword [ebp + 0x14]
lea eax, [ebp - 0x14]
mov dword [0x447a8c], edx
push eax
call fcn.00416320
mov ecx, dword [0x43c814]
and ecx, 0x2e588fae
xor ecx, 0x284887d8
cmp ecx, 0xa47cd613
je 0x421582
add dword [0x43f284], 0x89550c2b
add dword [0x4400a4], 0xc759e23
jmp 0x4215ff
mov eax, dword [ebp - 0xc]
fstp st(0)
fld dword [0x470efc]
fld dword [0x4698c4]
fsub dword [0x46dc70]
movzx edx, byte [ebp + esi - 8]
fsubp st(1)
fstp dword [0x470efc]
movzx ecx, byte [edx + eax]
push ecx
mov ecx, dword [ebp + 0x14]
call fcn.0040a510
mov dx, word [0x463542]
mov cx, word [0x463a74]
dec word [0x463542]
movsx eax, dx
movsx edx, cx
or eax, 0x95f5d2f3
add edx, edx
cmp eax, edx
jne 0x4215ff
inc dword [0x43ccbc]
mov eax, dword [0x443144]
mov ecx, dword [0x43ccbc]
imul eax, ecx
mov word [0x463ee0], ax
movzx edx, word [0x465ae0]
sub edx, 0x7ed77bd7
mov word [0x465ae0], dx
mov eax, dword [0x43e928]
movzx ecx, word [0x4650a0]
sar eax, 2
imul eax, eax, 0xe7b09bf4
inc esi
and ecx, eax
mov word [0x4650a0], cx
cmp esi, 4
jne 0x421430
fld qword [0x458648]
xor ebx, ebx
fsub dword [0x470b28]
fstp qword [0x458648]
fld dword [0x469144]
fadd qword [0x453f48]
fmul dword [0x4680c8]
fstp dword [0x4680c8]
fld1
cmp dword [ebp + 0xc], 0
fld dword [0x469e94]
fmul dword [0x46ecdc]
fstp dword [0x469e94]
jne 0x4212a3
mov edx, dword [0x446d34]
sub edx, 0x344b2713
cmp edx, 0x80701508
jle 0x4216a9
mov eax, dword [0x445f10]
imul eax, eax, 0xdae7f7ab
mov dword [0x445f10], eax
test ebx, ebx
je 0x421b0f
mov ecx, 0x23c1
mov word [0x464de2], cx
or edi, 0xffffffff
add dword [0x443e84], edi
mov edx, dword [0x440364]
mov eax, dword [0x443e84]
xor edx, eax
xor edx, 0x419ca7ce
cmp ebx, 3
mov dword [0x440364], edx
jge 0x421748
mov esi, 3
fstp st(0)
sub esi, ebx
push esi
lea eax, [ebp + ebx - 4]
push 0
push eax
call fcn.00415630
add esp, 0xc
mov eax, 0xaae53a62
mov ecx, 0x3172
mov word [0x464770], cx
mov edx, dword [0x43e3c4]
add dword [0x43e3c4], edi
xor edx, 0x975f97df
cmp edx, 0x4ce1a03b
jl 0x42173c
movzx ecx, word [0x461cd6]
add ecx, 0x4d76837a
mov word [0x461cd6], cx
sub esi, 1
mov dword [0x443ee4], eax
jne 0x421702
fld1
movzx edx, word [0x46163e]
mov al, byte [ebp - 4]
mov cl, al
sub edx, 0x45680daa
mov word [0x46163e], dx
shr cl, 2
mov byte [ebp - 8], cl
mov dword [0x43e680], 0xb6f464ff
and al, 3
shl al, 4
mov byte [ebp - 7], al
or dword [0x446eac], 0x40041420
mov eax, dword [0x444c64]
movzx edx, byte [ebp - 3]
imul eax, eax, 0x15f125cf
mov cl, byte [ebp - 3]
and cl, 0xf
shr dl, 4
add byte [ebp - 7], dl
mov dword [0x444c64], eax
add cl, cl
add cl, cl
mov byte [ebp - 6], cl
xor dword [0x43cd2c], 0xdddc478f
movzx edx, byte [ebp - 2]
shr dl, 6
add byte [ebp - 6], dl
add dword [0x4445a8], edi
mov eax, dword [0x441570]
mov ecx, dword [0x4445a8]
movzx edx, byte [ebp - 2]
and eax, ecx
mov dword [0x441570], eax
and dl, 0x3f
fld qword [0x44b240]
mov byte [ebp - 5], dl
fld dword [0x4686ac]
fcompi st(1)
fstp st(0)
jb 0x421806
movzx eax, word [0x464a8c]
and eax, 0xfffff9ef
mov word [0x464a8c], ax
jmp 0x421810
and dword [0x440954], 0x48ff662
mov dword [0x444678], 0xd9517c79
movzx ecx, word [0x46599c]
or ecx, 0x68007e9c
xor esi, esi
mov word [0x46599c], cx
test ebx, ebx
jge 0x421902
fstp st(0)
mov ecx, dword [0x442230]
sar ecx, 3
or ecx, 0x5bf2c2a7
cmp ecx, 0xcab0e720
je 0x42186d
fld dword [0x467650]
fld qword [0x45c9a0]
fld dword [0x4702a0]
fmulp st(2)
fsubrp st(1)
fstp qword [0x45c9a0]
cmp ebx, 3
jge 0x421ae1
mov esi, 3
sub esi, ebx
mov edi, 0x373b105d
mov ebx, 0xf77a5dfc
jmp 0x421890
or dword [0x43d478], 0x9e0c453e
or dword [0x43c1a0], edi
cmp byte [ebp + 0x10], 0
mov ecx, dword [ebp + 0x14]
je 0x421a66
movzx edx, word [0x4650fc]
lea eax, [ebp - 0x18]
sub edx, 0x105315f8
mov word [0x4650fc], dx
push eax
call fcn.00416320
mov cx, word [0x4628fa]
mov edx, dword [0x447994]
movsx eax, cx
xor eax, 0x1158a60
or eax, 0xecea551f
imul edx, eax
mov dword [0x447994], edx
dec word [0x4628fa]
jmp 0x421a85
fld1
and dword [0x43c7c0], 0x81f7a778
cmp byte [ebp + 0x10], 0
je 0x4219de
mov al, byte [ebp + esi - 8]
cmp al, 0x3d
jbe 0x4219de
fld dword [0x46cc8c]
fsub qword [0x4501e8]
fmul dword [0x46d8fc]
fstp dword [0x46d8fc]
fld qword [0x4501e8]
fsub st(1)
fstp qword [0x4501e8]
cmp al, 0x3e
jne 0x421997
fld dword [0x471ae4]
mov ecx, dword [ebp + 0x14]
fsub dword [0x46efbc]
lea edx, [ebp - 0x10]
push edx
fsub dword [0x46b720]
fstp dword [0x46eab8]
fadd dword [0x46b720]
fstp dword [0x46b720]
call fcn.00416320
mov eax, dword [0x448148]
mov ecx, dword [0x447a28]
imul eax, ecx
mov dword [0x448148], eax
add dword [0x447a28], edi
jmp 0x4219c8
mov edx, dword [0x446dfc]
fstp st(0)
mov eax, dword [0x447e44]
xor edx, eax
lea ecx, [ebp - 0x14]
xor edx, 0x7ba133e6
push ecx
mov ecx, dword [ebp + 0x14]
mov dword [0x446dfc], edx
call fcn.00416320
add dword [0x43d5d0], 0x8b8a04e7
movzx edx, word [0x464162]
sub edx, 0x77fffbef
mov word [0x464162], dx
jmp 0x421a11
or dword [0x43c1dc], 0x40210486
fstp st(0)
movzx eax, byte [ebp + esi - 8]
mov ecx, dword [ebp - 0xc]
movzx edx, byte [eax + ecx]
mov ecx, dword [ebp + 0x14]
push edx
call fcn.0040a510
movzx eax, word [0x463b4e]
and eax, 0x1f36c696
mov word [0x463b4e], ax
mov cx, word [0x4648b0]
movsx edx, cx
and edx, 0xfffffffe
cmp edx, 0xe36952be
jne 0x421a3c
mov eax, dword [0x4427f0]
xor eax, 0xcbb2c0ce
and dword [0x43c22c], eax
inc dword [0x4427f0]
mov dword [0x43d2dc], 0x6b93b6f4
movzx eax, word [0x46599c]
inc esi
or eax, 0x68007e9c
cmp esi, ebx
mov word [0x46599c], ax
jle 0x421900
jmp 0x42183a
and dword [0x444480], ebx
push 0x3d
call fcn.0040a510
movzx eax, word [0x462e4c]
or eax, 0x91f7be2d
mov word [0x462e4c], ax
fld qword [0x450420]
fmul qword [0x44eaf0]
fadd dword [0x46d220]
fld qword [0x44c9d0]
fld dword [0x46d220]
fsub qword [0x43b230]
fstp dword [0x46d220]
fcompi st(1)
fstp st(0)
jbe 0x421ad5
mov ecx, dword [0x441d34]
cmp ecx, 0x36d2ccf9
jg 0x421ad5
fld qword [0x44cb98]
fsub dword [0x46e69c]
fstp qword [0x44cb98]
sub esi, 1
jne 0x421890
or edi, 0xffffffff
add word [0x4655e8], di
mov dx, word [0x4655e8]
mov ecx, dword [0x4455a8]
movsx eax, dx
imul eax, eax, 0xbf80fe22
xor ecx, eax
mov eax, dword [0x446458]
imul eax, ecx
mov dword [0x446458], eax
jmp 0x421b11
fstp st(0)
inc dword [0x440574]
mov ecx, dword [0x440574]
pop edi
add ecx, 0x1f617df0
cmp ecx, 0x705871f5
pop esi
pop ebx
jg 0x421b41
mov edx, dword [0x4436d8]
mov eax, dword [0x44653c]
and edx, eax
mov dword [0x4436d8], edx
mov ecx, dword [ebp - 0xc]
push ecx
push 0x41
call fcn.00435030
mov eax, dword [0x443a7c]
mov edx, dword [0x43f4e4]
imul eax, edx
imul eax, eax, 0x7c8908
xor dword [0x43ca64], eax
push 4
lea eax, [ebp - 0x10]
push 0
push eax
call fcn.00415630
push 4
fld dword [0x470058]
lea ecx, [ebp - 0x14]
fstp qword [0x460990]
push 0
fld dword [0x470058]
push ecx
fsub qword [0x43b230]
fstp dword [0x470058]
call fcn.00415630
fld dword [0x4710a4]
push 4
fmul qword [0x44f670]
lea edx, [ebp - 0x18]
push 0
push edx
fadd dword [0x46c984]
fstp dword [0x46c984]
fld qword [0x44f670]
fsub qword [0x43b230]
fstp qword [0x44f670]
call fcn.00415630
add esp, 0x2c
or dword [0x440144], 0xce164a89
mov esp, ebp
pop ebp
ret