Function at 0x403070
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [0x442bfc]
sar eax, 0xa
imul eax, eax, 0xb443fc2c
sub esp, 0x18
or ecx, 0xffffffff
cmp eax, 0x2f32c4b8
jg 0x4030b2
mov eax, dword [0x44170c]
mov edx, dword [0x445fb0]
and eax, edx
movzx edx, word [0x46b21c]
imul edx, eax
mov word [0x46b21c], dx
add dword [0x44170c], ecx
xor dword [0x43e3cc], 0x4408004c
mov eax, dword [0x43f7b4]
add dword [0x43f7b4], ecx
cmp eax, 0x7bea277e
jle 0x4030e6
fld dword [0x474de4]
fsub dword [0x478b88]
fmul dword [0x47b07c]
fstp dword [0x47b07c]
mov ecx, dword [0x445920]
not ecx
xor ecx, 0x24f45957
cmp ecx, 0x6de88939
jle 0x403106
and dword [0x4428fc], 0x2af2ec61
fld dword [0x470de8]
push ebx
fsub dword [0x47d2cc]
push esi
push edi
push 0x41
fmul dword [0x478a7c]
push 0x3607
xor ebx, ebx
fstp dword [0x478a7c]
fld dword [0x4735e8]
fsub dword [0x470ca4]
fmul qword [0x453538]
fstp qword [0x453538]
call fcn.00410cc0
or dword [0x446e34], 0x1a21e2d0
push 4
push 0x1fdb
mov dword [ebp - 0xc], eax
call fcn.00410cc0
xor dword [0x4495d0], 0x5cb8e2e8
mov esi, eax
lea edx, [ebp - 0x10]
push esi
push edx
call fcn.0041cf80
mov ax, word [0x469f1c]
movsx ecx, ax
imul ecx, ecx, 0x72acac21
add esp, 0x18
cmp ecx, 0x4a298c00
jg 0x4031a4
fld qword [0x454460]
fsub dword [0x478470]
fstp qword [0x454460]
jmp 0x4031f8
fld dword [0x477810]
fmul dword [0x4780e0]
fsub dword [0x47aa84]
fld dword [0x4776a4]
fld dword [0x46fcf4]
fmul dword [0x47af20]
fsubp st(1)
fld dword [0x477810]
fadd qword [0x43ada0]
fstp dword [0x477810]
fxch st(1)
fcompi st(1)
fstp st(0)
jbe 0x4031f8
movzx edx, word [0x46826e]
and edx, 0x26f57c14
mov word [0x46826e], dx
push 4
push 0x951
call fcn.00410cc0
mov edi, eax
mov eax, dword [0x448c20]
imul eax, eax, 0x402bf697
push esi
mov dword [0x448c20], eax
push 4
call fcn.004011c0
lea ecx, [ebp - 0x14]
fld dword [0x47754c]
push edi
fmul dword [0x47bb20]
push ecx
fstp dword [0x47754c]
call fcn.0041cf80
add dword [0x445d10], 0x623e8c5a
push 4
push 0x1896
call fcn.00410cc0
movzx edx, word [0x46c1ea]
mov ecx, dword [0x43fec0]
mov esi, eax
movsx eax, dx
sar eax, 7
not ecx
add ecx, eax
mov eax, dword [0x442be8]
movzx edx, word [0x4683d6]
shl eax, 5
and eax, ecx
movsx ecx, dx
xor ecx, 0x48389981
add esp, 0x20
cmp ecx, eax
je 0x40329e
fld dword [0x473ad8]
fadd qword [0x4556a0]
fstp dword [0x473ad8]
jmp 0x4032a8
xor dword [0x44a6d4], 0x6e84b07e
push edi
push 4
call fcn.004011c0
fld dword [0x475390]
fmul dword [0x479500]
lea edx, [ebp - 0x18]
push esi
push edx
fmul dword [0x46fef4]
fadd qword [0x44f3d8]
fstp qword [0x44f3d8]
fld dword [0x46fef4]
fsub qword [0x43ada0]
fstp dword [0x46fef4]
call fcn.0041cf80
fld dword [0x475700]
push esi
fld dword [0x4759ec]
push 4
fmul dword [0x477b88]
fsubp st(1)
fstp dword [0x475700]
call fcn.004011c0
mov eax, dword [0x442724]
fld1
imul eax, eax, 0xb85e01f0
add esp, 0x18
mov dword [0x442724], eax
cmp dword [ebp + 0xc], ebx
je 0x40384c
mov edi, 1
xor dword [0x43e340], 0xfdcbf044
fld dword [0x4705b4]
fld dword [0x47d094]
sub dword [ebp + 0xc], edi
fsub dword [0x473054]
fcompi st(1)
fstp st(0)
jbe 0x40336e
fld dword [0x47c14c]
fsub qword [0x4618c8]
fadd dword [0x47028c]
fstp dword [0x47028c]
jmp 0x4033b3
fld qword [0x45d8f0]
fadd qword [0x45e760]
fld qword [0x454600]
fcompi st(1)
fstp st(0)
jb 0x403398
mov eax, dword [0x44983c]
or eax, 0xfdcfa902
add dword [0x43cd5c], eax
jmp 0x4033b3
add dword [0x444374], edi
mov ecx, dword [0x44a334]
mov edx, dword [0x444374]
imul ecx, edx
mov dword [0x44a334], ecx
movzx edx, word [0x46ef5a]
mov eax, dword [ebp + 8]
mov cl, byte [eax]
movsx eax, dx
mov byte [ebp + ebx - 4], cl
mov ecx, dword [0x43f5c8]
movzx edx, word [0x46b9c0]
imul ecx, eax
mov eax, 0x2edb86fd
sub eax, ecx
movsx ecx, dx
cmp eax, ecx
jle 0x4033fc
fld dword [0x470a5c]
fsub dword [0x478cd0]
fmul dword [0x47a204]
fstp dword [0x47a204]
add dword [0x43cd04], edi
mov eax, dword [0x43cd04]
mov edx, dword [0x43fb44]
imul eax, eax, 0xbc0b4bc4
dec dword [0x43fb44]
xor eax, 0xd7bdb6e6
add ebx, edi
cmp eax, edx
jge 0x40344b
mov ax, word [0x46b878]
movzx ecx, word [0x46eca8]
cwde
sar eax, 4
imul eax, eax, 0x2baa0487
add eax, 0xf090326b
and ecx, eax
mov word [0x46eca8], cx
jmp 0x40345d
fld dword [0x478d70]
fadd qword [0x44fe08]
fstp dword [0x474704]
mov edx, dword [0x445dd8]
add dword [ebp + 8], edi
cmp edx, 0xff9fa2af
jl 0x403491
mov eax, dword [0x43e2fc]
add dword [0x43e2fc], edi
cmp eax, 0xff13efee
jle 0x403491
mov eax, dword [0x440bb0]
imul eax, eax, 0xd8609e5
add dword [0x449fc8], eax
cmp ebx, 3
jne 0x403838
fld dword [0x471430]
fmul dword [0x470814]
fsub qword [0x44d958]
fld dword [0x473b30]
fcompi st(1)
fstp st(0)
jb 0x4034f8
mov cx, word [0x469494]
movsx edx, cx
sub edx, 0xa162596
cmp edx, 0x15df9a32
jne 0x4034e4
movzx eax, word [0x46aca8]
add eax, 0x72e155c4
mov word [0x46aca8], ax
jmp 0x4034f8
movzx ecx, word [0x46bfae]
or ecx, 0x31428880
mov word [0x46bfae], cx
mov dl, byte [ebp - 4]
shr dl, 2
mov byte [ebp - 8], dl
add dword [0x4462dc], 0x12a58200
fld dword [0x47605c]
movzx eax, byte [ebp - 4]
fadd dword [0x47375c]
mov cl, byte [ebp - 3]
and al, 3
shl al, 4
mov byte [ebp - 7], al
shr cl, 4
add byte [ebp - 7], cl
fstp dword [0x47605c]
movzx edx, word [0x46e12e]
or edx, 0xd25e3669
mov word [0x46de3c], dx
add word [0x46e12e], di
movzx eax, byte [ebp - 3]
mov ecx, dword [0x4495b8]
and al, 0xf
add al, al
add al, al
cmp ecx, 0x41354
mov byte [ebp - 6], al
jge 0x40359a
fld dword [0x472c4c]
fld dword [0x473e88]
fld qword [0x457cb8]
fld dword [0x470f88]
fmulp st(2)
fsubrp st(1)
fsubp st(1)
fstp dword [0x472c4c]
fld qword [0x457cb8]
fsub st(1)
fstp qword [0x457cb8]
mov ax, word [0x469aa0]
movzx ecx, word [0x46ca4a]
movzx edx, byte [ebp - 2]
cwde
add eax, 0x48fa2a85
shr dl, 6
add byte [ebp - 6], dl
movzx edx, byte [ebp - 2]
and eax, 0xc3a839da
sub ecx, eax
mov word [0x46ca4a], cx
and dl, 0x3f
fld dword [0x47c55c]
mov byte [ebp - 5], dl
fadd qword [0x4634d8]
xor esi, esi
fadd qword [0x44e330]
fstp qword [0x44e330]
fld qword [0x4634d8]
fadd st(1)
fstp qword [0x4634d8]
fsubr dword [0x47c55c]
fstp dword [0x47c55c]
mov dword [0x447c04], 0xb647ade0
lea ecx, [ecx]
add dword [0x448a50], 0x8f6fddf5
cmp byte [ebp + 0x10], 0
je 0x403712
mov al, byte [ebp + esi - 8]
cmp al, 0x3d
jbe 0x403712
fld dword [0x471790]
fsub dword [0x479ea0]
fstp dword [0x471ca4]
cmp al, 0x3e
jne 0x40368b
fld qword [0x45e5d8]
mov ecx, dword [ebp + 0x14]
fadd qword [0x4669c0]
lea eax, [ebp - 0x10]
push eax
fstp qword [0x45e5d8]
call fcn.00434a20
fld dword [0x476094]
fadd dword [0x47df30]
fadd dword [0x4758fc]
fstp dword [0x4758fc]
add dword [0x43e1f0], 0x4889d1a8
jmp 0x403741
mov ecx, dword [0x449774]
mov edx, dword [0x43ffd4]
or ecx, edx
mov dword [0x449774], ecx
mov ecx, dword [ebp + 0x14]
lea eax, [ebp - 0x14]
push eax
call fcn.00434a20
mov ecx, dword [0x43d034]
and ecx, 0xfffffffe
cmp ecx, 0xeefd6122
jne 0x4036e8
fld dword [0x470ac8]
fld qword [0x459ca8]
fsub qword [0x462f18]
fsub dword [0x47c5ac]
fsubp st(1)
fstp dword [0x470ac8]
add dword [0x43e1f0], 0x4889d1a8
jmp 0x403741
mov edx, dword [0x43c478]
add edx, 0x6208d304
cmp edx, 0x9b2325a7
je 0x403706
add dword [0x446ccc], 0xdfdcd7b0
add dword [0x43e1f0], 0x4889d1a8
jmp 0x403741
add dword [0x448014], 0x470db6ca
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.004239b0
mov eax, dword [0x444234]
imul eax, eax, 0x2ed19dc2
mov dword [0x444234], eax
dec dword [0x43f988]
add dword [0x448994], edi
mov ecx, dword [0x448994]
mov edx, dword [0x43f988]
cmp edx, ecx
jg 0x403777
mov eax, dword [0x4490ac]
xor eax, 0xf5f7cd8f
or eax, 0x51d70d8b
mov dword [0x444cd8], eax
add dword [0x4490ac], edi
mov ecx, dword [0x44078c]
mov edx, dword [0x440150]
add esi, edi
sub edx, ecx
mov word [0x46c1fe], dx
cmp esi, 4
jne 0x403610
mov eax, dword [0x444a88]
dec dword [0x444a88]
cmp eax, 0xd0fbbf5d
je 0x4037b9
mov cx, word [0x46a8d4]
movsx eax, cx
and dword [0x44a0e8], eax
dec word [0x468230]
mov dx, word [0x468230]
mov ecx, dword [0x449004]
movsx eax, dx
not ecx
sub ecx, eax
add ecx, 0x3a842404
xor ebx, ebx
cmp ecx, 0xbbf5b664
jl 0x403836
fld dword [0x472808]
fadd dword [0x474800]
fld dword [0x47d564]
fadd dword [0x46f8c8]
fld dword [0x46f8c8]
fld1
fadd st(1), st(0)
fxch st(1)
fstp dword [0x46f8c8]
fxch st(2)
fucompi st(1)
fstp st(0)
lahf
test ah, 0x44
jp 0x403826
and dword [0x4460c8], 0xffe2e540
jmp 0x403838
mov eax, dword [0x43d378]
sar eax, 0xa
and dword [0x44318c], eax
jmp 0x403838
fld1
add dword [0x4405ac], 0x44e8eed8
cmp dword [ebp + 0xc], 0
jne 0x40332f
mov edx, dword [0x445320]
mov ecx, dword [0x448588]
mov eax, 0xccae3784
sub eax, edx
add ecx, eax
cmp ecx, 0x71a55122
jl 0x40387d
movzx edx, word [0x4686fe]
xor edx, 0x1e3693dc
mov word [0x4686fe], dx
test ebx, ebx
je 0x403dc6
or dword [0x43ffec], 0x3ba6317c
mov eax, dword [0x43d468]
cmp eax, 0x40e054e9
jle 0x4038b1
dec dword [0x43d4e4]
mov eax, dword [0x43d4e4]
or eax, 0x53602e3e
and dword [0x43c9f0], eax
cmp ebx, 3
jge 0x403921
mov esi, 3
fstp st(0)
sub esi, ebx
push esi
lea eax, [ebp + ebx - 4]
push 0
push eax
call fcn.00411ae0
add esp, 0xc
mov edi, 0xbdb6caa2
mov edx, 0x4001c33a
lea esp, [esp]
mov ecx, dword [0x449b70]
or ecx, 0xf56f7d39
cmp ecx, 0x8e04bb04
jl 0x40390e
mov eax, dword [0x44004c]
lea ecx, [eax*4]
mov eax, dword [0x446874]
imul eax, ecx
and dword [0x444ba4], eax
mov dword [0x441e8c], edi
and dword [0x449690], edx
sub esi, 1
jne 0x4038e0
fld1
mov edx, dword [0x443d7c]
cmp edx, 0xd739f6f8
jge 0x403941
movzx eax, word [0x4687e2]
and eax, 0xf09213d6
mov word [0x4687e2], ax
mov eax, dword [0x440778]
mov edx, dword [0x446bfc]
mov cl, byte [ebp - 4]
shl eax, 4
shr cl, 2
or eax, 0xb08a28aa
xor edx, 0x4330068c
cmp eax, edx
mov byte [ebp - 8], cl
jle 0x403973
add dword [0x447a4c], 0x4e808080
jmp 0x40399e
dec dword [0x44721c]
mov eax, dword [0x44721c]
mov ecx, dword [0x443668]
imul eax, eax, 0x92ef6b91
or ecx, eax
cmp ecx, 0xbce3422c
jge 0x40399e
and dword [0x440ed8], 0x8102099
fld dword [0x47c048]
movzx edx, byte [ebp - 4]
fld dword [0x471990]
and dl, 3
fadd qword [0x460e80]
mov al, byte [ebp - 3]
shl dl, 4
mov byte [ebp - 7], dl
shr al, 4
fsubp st(1)
add byte [ebp - 7], al
fstp dword [0x47c048]
mov cx, word [0x46ba70]
mov edx, dword [0x43c50c]
movsx eax, cx
mov ecx, dword [0x449ea0]
sub eax, edx
movzx edx, byte [ebp - 3]
sub eax, ecx
and dl, 0xf
add eax, 0x3e7277d5
add dl, dl
mov word [0x46ba70], ax
add dl, dl
mov byte [ebp - 6], dl
dec dword [0x446d04]
mov eax, dword [0x446d04]
mov ecx, dword [0x444a70]
xor eax, 0x978fc6a7
or ecx, eax
cmp ecx, 0xe2cb5e8b
jg 0x403a41
fld qword [0x4680e8]
fsub qword [0x45cf68]
fstp qword [0x4680e8]
fld qword [0x45cf68]
fsub st(1)
fstp qword [0x45cf68]
mov ax, word [0x468b10]
movzx edx, byte [ebp - 2]
movsx ecx, ax
mov eax, dword [0x447464]
xor eax, ecx
movzx ecx, word [0x46d362]
shr dl, 6
add byte [ebp - 6], dl
or ecx, eax
mov word [0x46d362], cx
or eax, 0xffffffff
add word [0x468b10], ax
inc dword [0x447464]
movzx edx, byte [ebp - 2]
movzx ecx, word [0x468da2]
and dl, 0x3f
mov byte [ebp - 5], dl
add word [0x468da2], ax
movsx edx, cx
cmp edx, 0x9305a6f2
je 0x403ab2
fld dword [0x471d94]
fmul dword [0x475530]
fstp dword [0x477e18]
jmp 0x403ad8
fld dword [0x475220]
fadd qword [0x460860]
fadd qword [0x455480]
fstp qword [0x455480]
fld qword [0x460860]
fsub st(1)
fstp qword [0x460860]
fld dword [0x475518]
xor esi, esi
fmul dword [0x473ad8]
fadd qword [0x44f950]
fstp qword [0x44f950]
and dword [0x4422c4], 0x425bf486
test ebx, ebx
jl 0x403c73
mov edi, dword [ebp + 0x14]
jmp 0x403b12
fld1
or dword [0x44a3e0], 0x6baee7ef
cmp byte [ebp + 0x10], 0
je 0x403be4
mov al, byte [ebp + esi - 8]
cmp al, 0x3d
jbe 0x403be4
or dword [0x4424d0], 0xba7d656f
mov ecx, edi
cmp al, 0x3e
jne 0x403ba1
fld dword [0x471af8]
lea eax, [ebp - 0x10]
fmul qword [0x4522a8]
push eax
fmul qword [0x45dc90]
fstp qword [0x45dc90]
fsubr dword [0x471af8]
fstp dword [0x471af8]
call fcn.00434a20
mov ecx, dword [0x448930]
cmp ecx, 0x2739c98f
jle 0x403bd0
fld dword [0x47bba0]
fmul dword [0x47575c]
fld qword [0x44bbf8]
fcompi st(1)
fstp st(0)
jb 0x403bd0
mov dword [0x448900], 0x41bcb8cf
jmp 0x403bd0
xor dword [0x441d3c], 0xd66016c3
fstp st(0)
lea edx, [ebp - 0x14]
push edx
call fcn.00434a20
fld dword [0x47ac98]
fld dword [0x47cb24]
fsub dword [0x47d014]
fsubp st(1)
fstp dword [0x47ac98]
fld dword [0x475578]
fadd dword [0x476128]
fstp dword [0x475578]
jmp 0x403c36
movzx eax, word [0x46c634]
fstp st(0)
movzx ecx, byte [ebp + esi - 8]
imul eax, eax, 0xcc011089
mov edx, dword [ebp - 0xc]
mov word [0x46c634], ax
movzx eax, byte [ecx + edx]
push eax
mov ecx, edi
call fcn.004239b0
mov ecx, dword [0x44273c]
shl ecx, 8
cmp ecx, 0xd3b8d680
jl 0x403c36
fld qword [0x463c30]
fadd qword [0x454908]
fadd dword [0x47445c]
fstp dword [0x47445c]
mov dx, word [0x46d458]
movsx eax, dx
add dword [0x4410c0], eax
inc esi
fld dword [0x470cf0]
fsub dword [0x47a2f4]
fmul dword [0x477f08]
fstp dword [0x477f08]
and dword [0x4422c4], 0x425bf486
cmp esi, ebx
jle 0x403b10
jmp 0x403c75
fstp st(0)
mov ax, word [0x46b586]
movsx ecx, ax
cmp ecx, 0x4c29011a
jge 0x403c92
add dword [0x43fa1c], 0xbdfb47ef
jmp 0x403c9c
mov dword [0x440f48], 0x8b73d836
cmp ebx, 3
jge 0x403d83
mov esi, 3
sub esi, ebx
mov ebx, dword [ebp + 0x14]
mov edi, 0xdecd7e2f
cmp byte [ebp + 0x10], 0
mov edx, dword [0x4440c4]
not edx
mov dword [0x4484d8], edx
fld dword [0x47d440]
fld dword [0x473ecc]
fsub qword [0x452ec8]
fsub dword [0x476a78]
fsubp st(1)
fstp dword [0x47d440]
je 0x403d47
mov eax, dword [0x440770]
xor eax, 0x14044541
cmp eax, 0x79be339d
jle 0x403d12
mov cx, word [0x46c320]
movsx edx, cx
mov eax, 0x4addfd80
sub eax, edx
or dword [0x441a98], eax
jmp 0x403d1c
and dword [0x44a108], 0xec1dfeb3
lea eax, [ebp - 0x18]
push eax
mov ecx, ebx
call fcn.00434a20
fld dword [0x477de0]
fmul dword [0x478fa0]
fadd dword [0x47b8f8]
fadd dword [0x47c4b8]
fstp dword [0x47c4b8]
jmp 0x403d6a
or dword [0x43d690], edi
push 0x3d
mov ecx, ebx
call fcn.004239b0
movzx ecx, word [0x46e106]
and ecx, 0xfd03dea1
mov word [0x46e106], cx
mov eax, dword [0x44299c]
or eax, 0xb39c5379
sub dword [0x4434b8], eax
sub esi, 1
jne 0x403cb4
fld dword [0x4747b8]
fld dword [0x47c8dc]
fsub dword [0x4705fc]
fsub dword [0x475578]
fxch st(1)
fcompi st(1)
fstp st(0)
jb 0x403dc8
inc dword [0x44715c]
mov ecx, dword [0x43ec54]
mov eax, dword [0x44715c]
sar ecx, 0xa
add eax, ecx
and eax, 0xfc0705
sub dword [0x449d88], eax
jmp 0x403dc8
fstp st(0)
mov edx, dword [ebp - 0xc]
add dword [0x441624], 0xd7e1e164
push edx
push 0x41
call fcn.004011c0
mov eax, dword [0x449958]
push 4
not eax
lea ecx, [ebp - 0x10]
xor eax, 0x61593da0
push 0
mov dword [0x441bc8], eax
push ecx
call fcn.00411ae0
fld dword [0x47b120]
fmul qword [0x45de48]
push 4
lea edx, [ebp - 0x14]
push 0
fstp dword [0x47b120]
push edx
call fcn.00411ae0
fld dword [0x47a5d8]
fmul dword [0x47d890]
push 4
lea eax, [ebp - 0x18]
push 0
fsub dword [0x47c868]
push eax
fmul qword [0x462e70]
fstp qword [0x462e70]
call fcn.00411ae0
mov eax, dword [0x449f98]
add esp, 0x2c
pop edi
and eax, 0x917090c6
add dword [0x43c270], eax
pop esi
pop ebx
mov esp, ebp
pop ebp
ret