Function at 0x408240
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
mov ax, word [0x4930f2]
movsx ecx, ax
not ecx
xor ecx, 0x27fca0a8
mov dword [0x44b11c], ecx
xor dword [0x440b38], 0xdedfd7cf
sub esp, 0x18
fld dword [0x4a6354]
push ebx
fld dword [0x4adfa0]
push esi
fmul dword [0x4afe00]
push edi
mov eax, 0x1d3b79ed
mov edi, 1
fsubp st(1)
fmul dword [0x4a7ce4]
fstp dword [0x4a7ce4]
fld dword [0x4afe00]
fld1
fsub st(1), st(0)
fxch st(1)
fstp dword [0x4afe00]
mov edx, dword [0x44fcec]
mov ecx, dword [0x444c0c]
add dword [0x444c0c], edi
sub eax, edx
cmp ecx, eax
je 0x4082db
mov dx, word [0x4990dc]
fstp st(0)
mov ecx, dword [0x44a958]
movsx eax, dx
imul ecx, eax
mov dword [0x44a958], ecx
jmp 0x4082ff
fld dword [0x4a90f4]
fmul dword [0x49a6fc]
fmul dword [0x4ad7d0]
fstp dword [0x4ac714]
fsubr dword [0x4ad7d0]
fstp dword [0x4ad7d0]
fld dword [0x4a4cb0]
push 0x41
fstp dword [0x4ad0f0]
mov eax, dword [0x4443e4]
movzx edx, word [0x490146]
sub eax, 0x1ef12bf4
or eax, 0x29a4cd7e
add edx, eax
mov word [0x490146], dx
add dword [0x4443e4], edi
push 0x1e1a
xor ebx, ebx
call fcn.00404f10
add dword [0x452520], 0xc386a409
push 4
push 0x2ac6
mov dword [ebp - 0xc], eax
call fcn.00404f10
mov esi, eax
mov eax, dword [0x452054]
dec dword [0x452054]
sub eax, 0x3f80a989
xor eax, 0x5580d4c8
add esp, 0x10
cmp eax, 0x603a2953
jle 0x408391
mov ecx, dword [0x43ef10]
imul ecx, ecx, 0x334acb8f
mov word [0x49241e], cx
add dword [0x43ef10], edi
lea edx, [ebp - 0x10]
push esi
push edx
call fcn.0041a550
movzx eax, word [0x4902c0]
and eax, 0x12c6299a
push 4
mov word [0x4902c0], ax
push 0x31d7
call fcn.00404f10
push esi
fld dword [0x4ad418]
push 4
fld qword [0x487bb8]
mov edi, eax
fmul qword [0x47b8e0]
fmul dword [0x4b23ac]
fsubp st(1)
fstp dword [0x4ad418]
fld qword [0x487bb8]
fsub qword [0x43ab38]
fstp qword [0x487bb8]
call fcn.0042a4b0
mov eax, dword [0x43e370]
lea ecx, [ebp - 0x14]
sar eax, 1
or dword [0x454350], eax
push edi
push ecx
call fcn.0041a550
fld dword [0x4a65e0]
fadd dword [0x4a8e28]
push 4
fld qword [0x476490]
push 0x1c84
fld qword [0x46ab98]
fsubp st(2)
fsubrp st(1)
fstp qword [0x476490]
fld qword [0x46ab98]
fld1
fsub st(1), st(0)
fxch st(1)
fstp qword [0x46ab98]
fadd dword [0x4a65e0]
fstp dword [0x4a65e0]
call fcn.00404f10
fld dword [0x4af15c]
push edi
fld dword [0x4ac748]
push 4
fmul qword [0x48abd0]
mov esi, eax
fsubp st(1)
fstp dword [0x4aeb08]
fld dword [0x4ac748]
fld1
fsub st(1), st(0)
fxch st(1)
fstp dword [0x4ac748]
fadd dword [0x4af15c]
fstp dword [0x4af15c]
call fcn.0042a4b0
dec dword [0x43db60]
mov eax, dword [0x43db60]
lea edx, [ebp - 0x18]
or eax, 0xa748e9c6
sub dword [0x450d8c], eax
push esi
push edx
call fcn.0041a550
mov edi, 1
add word [0x49119a], di
movzx eax, word [0x49119a]
movsx ecx, ax
add esp, 0x38
cmp ecx, 0xb2300c98
jge 0x4084fc
dec word [0x4984fa]
mov dx, word [0x4984fa]
movsx eax, dx
imul eax, eax, 0xc2fa5abe
and eax, 0x8da2b979
mov dword [0x44997c], eax
push esi
push 4
call fcn.0042a4b0
add dword [0x4454c0], 0x4067245e
add esp, 8
cmp dword [ebp + 0xc], ebx
je 0x4088b0
lea ebx, [ebx]
mov eax, dword [0x452610]
add eax, 0xe53605e1
or dword [0x442fd0], eax
fld dword [0x4a000c]
fadd dword [0x49b0a8]
mov eax, dword [ebp + 8]
sub dword [ebp + 0xc], edi
fadd qword [0x47e800]
fstp qword [0x47e800]
mov cl, byte [eax]
fld dword [0x4a4ef0]
mov byte [ebp + ebx - 4], cl
fmul dword [0x49da30]
add eax, edi
mov dword [ebp + 8], eax
add ebx, edi
fmul dword [0x4a7c4c]
fstp qword [0x46b028]
fld dword [0x4a4ef0]
fadd qword [0x43ab38]
fstp dword [0x4a4ef0]
mov edx, dword [0x44cec8]
mov dword [0x441f68], edx
mov eax, dword [0x454fa4]
xor eax, 0xd44868d4
add dword [0x43d7e0], eax
cmp ebx, 3
jne 0x408894
add dword [0x441d6c], 0x68c2e592
mov al, byte [ebp - 4]
shr al, 2
mov byte [ebp - 8], al
mov eax, dword [0x43d200]
shl eax, 5
or eax, 0x24dc944
xor dword [0x44f1c0], eax
fld dword [0x4acca4]
mov cl, byte [ebp - 4]
fsub dword [0x4a7a28]
mov dl, byte [ebp - 3]
and cl, bl
shl cl, 4
mov byte [ebp - 7], cl
fstp dword [0x4acca4]
mov eax, dword [0x4546e4]
mov ecx, dword [0x444a60]
sar eax, 9
add eax, 0x6b3c23f6
shr dl, 4
add byte [ebp - 7], dl
and ecx, eax
cmp ecx, 0x88df56e1
jne 0x40863a
add dword [0x449f2c], edi
mov eax, dword [0x4468e8]
mov edx, dword [0x449f2c]
mov ecx, dword [0x44ee98]
or eax, edx
or ecx, eax
mov dword [0x4468e8], ecx
dec dword [0x44ee98]
mov eax, dword [0x44de00]
mov dl, byte [ebp - 3]
imul eax, eax, 0xe54fc50e
mov cl, byte [ebp - 2]
and dl, 0xf
add dl, dl
add dl, dl
mov byte [ebp - 6], dl
mov dword [0x44de00], eax
mov edx, dword [0x45585c]
shr cl, 6
add byte [ebp - 6], cl
not edx
sub edx, 0x74a36127
cmp edx, 0xd42771c8
jle 0x40869d
mov eax, dword [0x451fe4]
cmp eax, 0x6de5165a
jl 0x40868b
mov cx, word [0x48edb2]
jmp 0x40869d
mov edx, dword [0x442fdc]
imul edx, edx, 0x68ec1dcb
mov dword [0x442fdc], edx
mov al, byte [ebp - 2]
mov ecx, dword [0x43d65c]
mov edx, dword [0x43c5a8]
and al, 0x3f
mov byte [ebp - 5], al
mov eax, 0xd5cb2c0f
sub eax, ecx
sub eax, edx
mov dword [0x443390], eax
dec dword [0x43d65c]
mov eax, dword [0x4495d0]
xor esi, esi
imul eax, eax, 0x6001416
mov dword [0x4495d0], eax
jmp 0x4086e0
or dword [0x44bf50], 0x722bf71
cmp byte [ebp + 0x10], 0
je 0x408824
mov al, byte [ebp + esi - 8]
cmp al, 0x3d
jbe 0x408824
add dword [0x4451a8], 0x884a917c
cmp al, 0x3e
jne 0x408769
fld dword [0x4a2954]
lea ecx, [ebp - 0x10]
push ecx
fstp dword [0x4a35e8]
mov ecx, dword [ebp + 0x14]
call fcn.0041c1b0
mov eax, dword [0x447b54]
mov edx, dword [0x4557c8]
sar eax, 8
add eax, 0x3e2fc97a
and eax, 0x8fa57e7e
sub edx, 0x1beca6db
cmp edx, eax
jne 0x4087f2
mov eax, dword [0x44aa80]
mov ecx, dword [0x451eb4]
lea edx, [ecx + eax + 0x5192453a]
mov dword [0x451eb4], edx
jmp 0x4087f2
fld dword [0x49db58]
mov ecx, dword [ebp + 0x14]
fsub dword [0x4a11a0]
lea eax, [ebp - 0x14]
push eax
fadd dword [0x4a0df8]
fadd qword [0x480138]
fstp qword [0x480138]
call fcn.0041c1b0
mov ecx, dword [0x4453a0]
shl ecx, 0xa
xor ecx, 0xcbae9a53
cmp ecx, 0x4004040
jl 0x4087d6
fld dword [0x4aae7c]
fsub dword [0x4a1874]
fadd qword [0x45e310]
fstp qword [0x45e310]
fld dword [0x4a1874]
fsub qword [0x43ab38]
fstp dword [0x4a1874]
jmp 0x4087f2
fld dword [0x49acdc]
fld qword [0x4606f8]
fld qword [0x4896d0]
fsubp st(2)
fsubrp st(1)
fstp qword [0x4606f8]
fld qword [0x48a990]
fsub dword [0x4a0d54]
fadd dword [0x49cdb0]
fmul dword [0x4ad240]
fstp dword [0x4ad240]
fld dword [0x49cdb0]
fsub qword [0x43ab38]
fstp dword [0x49cdb0]
jmp 0x408856
mov edx, dword [0x44f5f0]
movzx eax, byte [ebp + esi - 8]
imul edx, edx, 0xc8803560
mov ecx, dword [ebp - 0xc]
mov dword [0x44f5f0], edx
movzx edx, byte [eax + ecx]
mov ecx, dword [ebp + 0x14]
push edx
call fcn.00429d00
mov eax, 0xffffa222
mov word [0x48dc88], ax
or dword [0x4508fc], 0x259b9483
add dword [0x444e2c], 0xfb7ddf8d
add esi, edi
cmp esi, 4
jne 0x4086e0
mov eax, dword [0x447154]
shl eax, 8
add eax, 0xb68fbb6a
and dword [0x4550f4], eax
xor ebx, ebx
add dword [0x445c20], 0xc24e2da0
mov ecx, dword [0x449c88]
imul ecx, ecx, 0xfef6e15f
cmp dword [ebp + 0xc], 0
mov dword [0x449c88], ecx
jne 0x408520
mov edx, dword [0x445e34]
imul edx, edx, 0x3eb12a76
mov dword [0x445e34], edx
test ebx, ebx
je 0x408f44
fld dword [0x4aea04]
fadd dword [0x4a72f8]
fstp dword [0x4a8bc0]
mov ax, word [0x4934e4]
movsx ecx, ax
and ecx, 0xfffffffe
cmp ecx, 0xc98fd94a
jge 0x40890d
mov eax, dword [0x44bd50]
mov edx, dword [0x43d308]
shl eax, 4
imul edx, eax
or edx, 0xbdb247de
mov dword [0x43c9c4], edx
cmp ebx, 3
jge 0x4089dd
mov esi, 3
sub esi, ebx
push esi
lea eax, [ebp + ebx - 4]
push 0
push eax
call fcn.004267f0
add esp, 0xc
mov ecx, 0x98128200
jmp 0x408942
fstp st(0)
fld dword [0x4a51f0]
fld dword [0x4a0814]
fadd dword [0x4b08e8]
fsubp st(1)
fstp dword [0x4a51f0]
fld dword [0x4a0814]
fld1
fsub st(1), st(0)
fxch st(1)
fstp dword [0x4a0814]
mov eax, dword [0x44a380]
mov edx, dword [0x444a88]
add eax, eax
add eax, eax
add edx, eax
cmp edx, 0x72d9e673
jge 0x4089af
fld dword [0x4a7850]
fmul qword [0x47ae88]
fadd qword [0x458038]
fstp qword [0x458038]
fld dword [0x4a7850]
fsub st(1)
fstp dword [0x4a7850]
jmp 0x4089cd
fld dword [0x4ae918]
fmul dword [0x4ae454]
fsub qword [0x472bb8]
fadd dword [0x4a7d4c]
fstp dword [0x4a7d4c]
and dword [0x443678], ecx
sub esi, edi
jne 0x408940
jmp 0x4089df
fld1
mov eax, dword [0x440384]
movzx ecx, word [0x4902e8]
add eax, 0xb199ad0e
or ecx, eax
mov word [0x4902e8], cx
dec dword [0x440384]
mov eax, dword [0x43e754]
mov dl, byte [ebp - 4]
add eax, 0x3cb52490
and eax, 0xc697fabb
shr dl, 2
mov byte [ebp - 8], dl
or dword [0x4546f0], eax
mov al, byte [ebp - 4]
mov ecx, dword [0x44d784]
and al, 3
shl al, 4
sar ecx, 6
mov byte [ebp - 7], al
cmp ecx, 0x68b37e1b
jne 0x408a59
fld dword [0x4a7380]
fld dword [0x4ae320]
fsub dword [0x4b1374]
fsub dword [0x49cc34]
fsubp st(1)
fstp dword [0x4a7380]
mov al, byte [ebp - 3]
mov dl, al
and al, 0xf
add al, al
add al, al
shr dl, 4
add byte [ebp - 7], dl
mov byte [ebp - 6], al
mov dword [0x442a6c], 0x359941a4
mov eax, dword [0x44c9c8]
sar eax, 4
add eax, 0x3af15c77
cmp eax, 0xaddf5109
jne 0x408a95
xor dword [0x440160], 0xe4aee38c
mov edx, dword [0x4457fc]
mov eax, dword [0x453950]
movzx ecx, byte [ebp - 2]
shr cl, 6
add byte [ebp - 6], cl
movzx ecx, byte [ebp - 2]
or edx, eax
or edx, 0xfe7ffdfe
mov dword [0x4457fc], edx
and cl, 0x3f
fld dword [0x4afd18]
mov byte [ebp - 5], cl
fld dword [0x49da54]
fmul qword [0x45aa98]
fld dword [0x49da54]
fsubrp st(3)
fxch st(2)
fstp dword [0x49da54]
fucompi st(1)
fstp st(0)
lahf
test ah, 0x44
jnp 0x408af8
add dword [0x44a714], 0x58ca255
xor dword [0x450d18], 0x95ea785a
mov dx, word [0x492bc0]
mov eax, dword [0x43cc0c]
movsx ecx, dx
shl ecx, 8
and eax, ecx
xor eax, 0xcb25c6b
add dword [0x456040], eax
dec dword [0x43cc0c]
xor esi, esi
test ebx, ebx
jl 0x408de0
mov edi, dword [ebp + 0x14]
jmp 0x408b40
mov ecx, dword [0x441874]
mov ax, word [0x49373e]
cwde
not ecx
imul eax, ecx
mov ecx, dword [0x44dbac]
or eax, 0x3b1b2e15
imul ecx, eax
cmp byte [ebp + 0x10], 0
mov dword [0x44dbac], ecx
je 0x408ca1
mov dl, byte [ebp + esi - 8]
cmp dl, 0x3d
jbe 0x408ca1
dec dword [0x45689c]
mov eax, dword [0x443cfc]
mov ecx, dword [0x45689c]
and eax, 0xbf293fa2
or ecx, eax
movzx eax, word [0x4949aa]
add eax, ecx
mov word [0x4949aa], ax
cmp dl, 0x3e
jne 0x408c0b
add dword [0x444584], 0xd7ef7bfd
lea ecx, [ebp - 0x10]
push ecx
mov ecx, edi
call fcn.0041c1b0
mov edx, dword [0x453cd0]
sub edx, 0x7945a796
cmp edx, 0x5680050
jge 0x408bea
mov eax, dword [0x446a10]
xor eax, 0xca86bac8
sub dword [0x43fcf0], eax
dec dword [0x446a10]
jmp 0x408c32
mov eax, dword [0x4525a8]
mov ecx, dword [0x452e4c]
xor eax, 0xa47452e5
imul ecx, eax
mov dword [0x452e4c], ecx
dec dword [0x4525a8]
jmp 0x408c32
and dword [0x454318], 0x65ee2174
lea edx, [ebp - 0x14]
push edx
mov ecx, edi
call fcn.0041c1b0
fld dword [0x4b2258]
fmul qword [0x45d1b0]
fstp dword [0x499ed8]
mov ax, word [0x494f24]
movsx ecx, ax
cmp ecx, 0x74bf48ce
jle 0x408c6e
mov dx, word [0x496bda]
movzx ecx, word [0x48d654]
movsx eax, dx
or eax, 0x89367649
sub ecx, eax
mov word [0x48d654], cx
dec word [0x496bda]
jmp 0x408d4d
mov edx, dword [0x44ee40]
inc dword [0x44ee40]
cmp edx, 0x22000002
jge 0x408d4d
mov eax, dword [0x447a84]
imul eax, eax, 0x5806f850
add eax, 0xc852b2d4
add dword [0x44eb68], eax
jmp 0x408d4d
mov ax, word [0x490b7a]
movsx ecx, ax
shl ecx, 4
cmp ecx, 0xf2cc3c8d
jl 0x408ce2
mov dx, word [0x48e6cc]
movsx eax, dx
sub eax, 0x1db829d7
and eax, 0x3f350d6a
cmp eax, 0x5752f1dc
jg 0x408ce2
fld dword [0x49b900]
fadd qword [0x48b820]
fstp dword [0x49b900]
movzx ecx, byte [ebp + esi - 8]
mov edx, dword [ebp - 0xc]
movzx eax, byte [ecx + edx]
push eax
mov ecx, edi
call fcn.00429d00
fld qword [0x457ef8]
fmul qword [0x484918]
fld dword [0x4adc00]
fmul qword [0x48b518]
fsub dword [0x4b33d4]
fxch st(1)
fucompi st(1)
fstp st(0)
lahf
test ah, 0x44
jp 0x408d4d
dec dword [0x440f64]
mov eax, dword [0x444df0]
mov ecx, dword [0x440f64]
mov edx, dword [0x43d7a0]
or eax, ecx
or eax, 0xdb74db00
imul edx, eax
mov dword [0x43d7a0], edx
inc dword [0x444df0]
inc dword [0x44acd4]
mov eax, dword [0x44acd4]
add eax, 0x132b54e5
or eax, 0x79227ee2
cmp eax, 0x2b89ed5a
jle 0x408da3
mov ecx, dword [0x443350]
mov eax, dword [0x446ed4]
sar ecx, 0xa
not eax
sub eax, ecx
mov ecx, dword [0x43f6f8]
cmp eax, ecx
jl 0x408d91
add dword [0x44db2c], 0xacb13da4
jmp 0x408da3
fld qword [0x480878]
fsub dword [0x4a5a98]
fstp qword [0x480878]
add dword [0x44fdd0], 0x5fcb8f9e
mov dx, word [0x492bc0]
mov eax, dword [0x43cc0c]
movsx ecx, dx
shl ecx, 8
and eax, ecx
xor eax, 0xcb25c6b
add dword [0x456040], eax
dec dword [0x43cc0c]
inc esi
cmp esi, ebx
jle 0x408b40
mov edi, 1
cmp ebx, 3
fld dword [0x499f14]
fmul dword [0x4aef60]
fadd dword [0x4b0330]
fstp dword [0x4b0330]
fld dword [0x499f14]
fsub qword [0x43ab38]
fstp dword [0x499f14]
jge 0x408f3a
mov esi, 3
sub esi, ebx
mov edi, 0xf1cdee91
mov ebx, 0x55c10090
fld dword [0x49bab8]
fsub dword [0x4af484]
fstp dword [0x4a6ad8]
add dword [0x44588c], edi
cmp byte [ebp + 0x10], 0
je 0x408ece
mov ax, word [0x494b50]
mov cx, word [0x492284]
mov edx, dword [0x453ca4]
cwde
imul edx, edx, 0x59f287d2
not eax
and eax, 0xb976ed58
movsx ecx, cx
xor ecx, eax
mov eax, 1
add word [0x492284], ax
add dword [0x453ca4], eax
cmp edx, ecx
jl 0x408ea0
fld dword [0x4a1660]
fadd dword [0x4ad1a8]
fsub qword [0x47afe0]
fmul dword [0x4a5090]
fstp dword [0x4a5090]
mov ecx, dword [ebp + 0x14]
lea eax, [ebp - 0x18]
push eax
call fcn.0041c1b0
mov cx, word [0x4905f8]
movzx edx, word [0x4941b6]
movsx eax, cx
imul eax, eax, 0xe3194400
or edx, eax
mov word [0x4941b6], dx
jmp 0x408f10
fld dword [0x49bf7c]
mov ecx, dword [ebp + 0x14]
fld dword [0x4a5ea8]
push 0x3d
fmul qword [0x46b930]
fsub dword [0x4a3864]
fsubp st(1)
fstp dword [0x49bf7c]
fld dword [0x4a5ea8]
fsub qword [0x43ab38]
fstp dword [0x4a5ea8]
call fcn.00429d00
or dword [0x43f2c4], ebx
sub esi, 1
fld dword [0x4af3a4]
fld qword [0x482fe0]
fld dword [0x4a22b4]
fmulp st(2)
fsubrp st(1)
fstp dword [0x4b2a14]
jne 0x408e24
mov edi, 1
xor dword [0x4472dc], 0x30a7e9d
add dword [0x4550c4], edi
mov ax, word [0x4901ec]
mov ecx, dword [0x4550c4]
mov edx, dword [ebp - 0xc]
cwde
push edx
and ecx, eax
mov word [0x4901ec], cx
push 0x41
call fcn.0042a4b0
mov eax, dword [0x43d044]
mov ecx, dword [0x4459dc]
add dword [0x43d044], edi
add esp, 8
pop edi
xor eax, ecx
cmp eax, 0x104a210
pop esi
pop ebx
jge 0x408fb1
fld dword [0x4b29e8]
fmul dword [0x4af2b4]
fld qword [0x46a560]
fxch st(1)
fcompi st(1)
fstp st(0)
jb 0x408fca
mov dword [0x43d55c], 0xb589ddc4
jmp 0x408fca
mov eax, dword [0x44e8f4]
mov edx, dword [0x44b480]
and eax, 0xb88b969
xor edx, eax
mov word [0x492e80], dx
push 4
lea eax, [ebp - 0x10]
push 0
push eax
call fcn.004267f0
and dword [0x4458b0], 0x6e13343e
push 4
lea ecx, [ebp - 0x14]
push 0
push ecx
call fcn.004267f0
xor dword [0x44b064], 0x2614d68c
push 4
lea edx, [ebp - 0x18]
push 0
push edx
call fcn.004267f0
fld qword [0x45aaf8]
fstp dword [0x4adb58]
add esp, 0x24
mov esp, ebp
pop ebp
ret