Function at 0x414da0
Capabilities:
Encode data using base64

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x4c
movzx eax, byte [esp + 0x68]
mov dword [esp + 4], 0x41
mov dword [esp], 0xa72
mov esi, dword [esp + 0x60]
mov ebx, dword [esp + 0x64]
mov byte [esp + 0x1a], al
mov eax, dword [0x452000]
sub eax, 0x38279149
mov dword [0x452000], eax
mov ecx, dword [0x453a7c]
mov eax, dword [0x453ef8]
add eax, ecx
mov dword [0x453ef8], eax
movzx eax, word [0x43fd5a]
mov dword [0x44b390], 0x19557d1f
mov dword [0x4512f0], 0x9e747d67
movzx eax, word [0x443a1a]
xor ax, 0x4188
mov word [0x443a1a], ax
call fcn.004060b0
mov dword [esp + 0x14], eax
movzx eax, word [0x440988]
mov dword [esp + 4], 5
mov dword [esp], 0x1a54
sub ax, 0x6afd
mov word [0x440988], ax
call fcn.004060b0
mov edi, eax
mov eax, dword [0x458378]
cmp eax, 0xf976d059
jge 0x414e64
fld dword [0x4657a4]
fld dword [0x463f14]
fsubrp st(1)
fstp dword [0x463f14]
mov eax, dword [esp + 0x14]
lea edx, [esp + 0x34]
movsx eax, byte [eax + 0x3e]
mov dword [esp], edx
mov dword [esp + 8], edi
mov dword [esp + 4], 4
mov dword [esp + 0xc], eax
call fcn.00430530
mov eax, dword [0x451994]
mov dword [esp + 4], 5
mov dword [esp], 0x1a54
imul eax, eax, 0x6a30d3b
mov dword [0x451994], eax
call fcn.004060b0
mov ebp, eax
mov eax, dword [0x44d1c4]
mov dword [esp + 4], edi
mov dword [esp], 5
xor eax, 0x78e03ded
mov dword [0x44d1c4], eax
call fcn.00409bd0
mov eax, dword [esp + 0x14]
fld dword [0x45891c]
fstp dword [0x46aad0]
movsx eax, byte [eax + 0x3f]
mov dword [esp + 8], ebp
mov dword [esp + 4], 4
mov dword [esp + 0xc], eax
lea eax, [esp + 0x38]
mov dword [esp], eax
call fcn.00430530
mov eax, dword [0x452660]
mov dword [esp + 4], 5
mov dword [esp], 0x1a54
sub eax, 0x4dc02a52
mov dword [0x452660], eax
call fcn.004060b0
mov dword [esp + 4], ebp
mov dword [esp], 5
mov edi, eax
mov dword [0x44471c], 0xff48d88e
call fcn.00409bd0
lea eax, [esp + 0x3c]
mov dword [esp + 0xc], 0x3d
mov dword [esp + 8], edi
mov dword [esp + 4], 4
mov dword [0x4526f8], 0xc6c32a9a
mov dword [esp], eax
call fcn.00430530
movzx eax, word [0x43b02e]
mov dword [esp + 4], edi
mov dword [esp], 5
xor ax, 0xf6b8
mov word [0x43b02e], ax
call fcn.00409bd0
mov eax, dword [0x4484e0]
add eax, 0x481ce192
test ebx, ebx
mov dword [0x4484e0], eax
je 0x4158cc
xor edi, edi
mov ebp, dword [esp + 0x6c]
jmp 0x414fd0
cmp edi, 3
je 0x41503e
mov eax, dword [0x458444]
or eax, 0x5b382ed9
test ebx, ebx
mov dword [0x458444], eax
je 0x4152d1
mov eax, dword [0x455378]
sub ebx, 1
add esi, 1
add eax, 0x4f7dfec4
mov dword [0x455378], eax
mov edx, dword [0x454d48]
mov eax, dword [0x454844]
xor eax, edx
mov dword [0x454844], eax
movzx eax, byte [esi - 1]
mov byte [esp + edi + 0x2d], al
movzx eax, word [0x43d7b0]
add edi, 1
fld dword [0x464d14]
fld qword [0x483e18]
faddp st(1)
fstp qword [0x483e18]
mov eax, dword [0x4541bc]
cmp eax, 0x61888373
jne 0x414fb0
fld dword [0x46cc18]
cmp edi, 3
fstp dword [0x465170]
jne 0x414fb9
mov eax, dword [0x4581b8]
cmp eax, 0xe57acf5c
jl 0x415059
mov eax, dword [0x44d6c4]
and eax, 0x2c7fea5e
mov dword [0x44d6c4], eax
fld dword [0x465b44]
movzx edx, byte [esp + 0x2d]
fld dword [0x463600]
faddp st(1)
mov ecx, edx
and edx, 3
shr cl, 2
shl edx, 4
mov byte [esp + 0x1b], cl
mov byte [esp + 0x30], cl
fstp dword [0x463600]
mov eax, dword [0x45321c]
imul eax, eax, 0x4df76c92
mov dword [0x45321c], eax
movzx eax, byte [esp + 0x2e]
fld dword [0x46597c]
fstp qword [0x48b030]
mov ecx, eax
and eax, 0xf
shr cl, 4
mov edi, ecx
add edx, edi
mov byte [esp + 0x31], dl
mov edx, dword [0x445f60]
sub edx, 0x550c4df
mov dword [0x445f60], edx
movzx edx, byte [esp + 0x2f]
mov ecx, edx
shr cl, 6
mov edi, ecx
lea eax, [edi + eax*4]
mov byte [esp + 0x32], al
mov eax, dword [0x44a52c]
cmp eax, 0xb5f73017
je 0x415730
fld dword [0x45f428]
and edx, 0x3f
mov byte [esp + 0x33], dl
fld dword [0x469e98]
fxch st(1)
fucompi st(1)
fstp st(0)
jb 0x415265
fld dword [0x466348]
fld dword [0x45d224]
fsubrp st(1)
fstp dword [0x45d224]
movzx ecx, byte [esp + 0x1b]
lea edi, [esp + 0x30]
mov dword [0x44a874], 0x82b32f28
fld dword [0x46994c]
cmp byte [esp + 0x1a], 0
fld dword [0x466f50]
faddp st(1)
fstp dword [0x466f50]
je 0x4151f0
cmp cl, 0x3d
jbe 0x4151f0
fld dword [0x466a48]
cmp cl, 0x3e
fld dword [0x4661b4]
faddp st(1)
fstp dword [0x4661b4]
je 0x415280
movzx eax, word [0x43f7b6]
lea eax, [esp + 0x38]
mov ecx, ebp
mov dword [esp], eax
call fcn.004142d0
mov eax, dword [0x4471b4]
sub esp, 4
imul eax, eax, 0xb0993222
mov dword [0x4471b4], eax
movzx eax, word [0x441a3a]
movzx ecx, word [0x442420]
imul eax, ecx
mov word [0x442420], ax
mov ecx, dword [0x447980]
movsx eax, word [0x4424c4]
add edi, 1
imul eax, ecx
mov word [0x4424c4], ax
movzx eax, word [0x440160]
and ax, 0x51f7
mov word [0x440160], ax
lea eax, [esp + 0x34]
cmp eax, edi
je 0x415233
movzx ecx, byte [edi]
jmp 0x415131
mov eax, dword [0x44f2e4]
imul eax, eax, 0x9b6d830
mov dword [0x44f2e4], eax
mov eax, dword [esp + 0x14]
movsx eax, byte [eax + ecx]
mov dword [esp], 1
mov ecx, ebp
mov dword [esp + 4], eax
call fcn.00413310
movzx eax, word [0x443a22]
sub esp, 8
or ax, 0x59a0
mov word [0x443a22], ax
jmp 0x4151b5
fld qword [0x4925b8]
xor edi, edi
fld dword [0x45f298]
fmulp st(1)
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fstp dword [0x45f298]
mov eax, dword [0x4473d0]
or eax, 0x6bc7b10
mov dword [0x4473d0], eax
jmp 0x414fb9
mov eax, dword [0x446940]
xor eax, 0x72f7f86e
mov dword [0x446940], eax
jmp 0x41511e
lea eax, [esp + 0x34]
fld dword [0x467c2c]
mov ecx, ebp
mov dword [esp], eax
fstp dword [0x45fb14]
call fcn.004142d0
mov eax, dword [0x4473b4]
sub esp, 4
cmp eax, 0xb55b4d0c
je 0x41519e
mov eax, dword [0x449d18]
cmp eax, 0x375febc6
je 0x4158a0
mov eax, dword [0x455fd0]
and eax, 0x5721c29d
mov dword [0x455fd0], eax
jmp 0x41519e
movzx eax, word [0x439cca]
add ax, 0xa08
test edi, edi
mov word [0x439cca], ax
je 0x415604
fld dword [0x458d70]
fld qword [0x4927b8]
fxch st(1)
fucompi st(1)
fstp st(0)
jae 0x415750
mov eax, dword [0x454510]
movzx edx, word [0x43d98e]
add eax, edx
mov word [0x43d98e], ax
mov eax, dword [0x456df8]
mov ecx, edi
imul eax, eax, 0xaa3b8979
cmp edi, 2
mov dword [0x456df8], eax
jg 0x415371
mov eax, dword [0x449b50]
mov byte [esp + ecx + 0x2d], 0
add ecx, 1
add eax, 0x7bc1bf46
mov dword [0x449b50], eax
mov eax, dword [0x451a08]
movzx edx, word [0x4400fc]
or eax, edx
cmp ecx, 3
mov word [0x4400fc], ax
fld dword [0x45f910]
fld qword [0x46ffc8]
fmulp st(1)
fstp qword [0x46ffc8]
jne 0x41532d
mov edx, dword [0x44a16c]
mov eax, dword [0x45500c]
movzx ecx, byte [esp + 0x2d]
xor eax, edx
mov dword [0x45500c], eax
mov edx, dword [0x44bef0]
mov eax, ecx
and ecx, 3
shl ecx, 4
shr al, 2
xor edx, 0x3054edee
mov byte [esp + 0x30], al
mov dword [0x44bef0], edx
mov edx, dword [0x44c948]
add edx, 0x70f64dab
mov dword [0x44c948], edx
movzx edx, byte [esp + 0x2e]
mov ebx, edx
shr bl, 4
add ecx, ebx
mov byte [esp + 0x31], cl
mov ecx, dword [0x44efac]
cmp ecx, 0xb927daf2
jge 0x4153f2
movzx ecx, word [0x4433c4]
mov ecx, dword [0x452098]
sub ecx, 0x2788fd75
mov dword [0x452098], ecx
mov ecx, dword [0x44ec84]
and edx, 0xf
shl edx, 2
cmp ecx, 0xf64a9c17
jl 0x415418
mov ecx, dword [0x45178c]
cmp ecx, 0x430d2221
jle 0x4158c1
movzx ebx, byte [esp + 0x2f]
mov esi, dword [esp + 0x6c]
mov ecx, ebx
and ebx, 0x3f
shr cl, 6
mov byte [esp + 0x33], bl
xor ebx, ebx
add edx, ecx
mov ebp, ebx
movzx ebx, byte [esp + 0x1a]
mov byte [esp + 0x32], dl
mov edx, dword [0x4536ac]
and edx, 0xc7fa9216
mov dword [0x4536ac], edx
movsx edx, word [0x43adf4]
mov dword [0x4456f8], edx
fld qword [0x479938]
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fstp dword [0x46773c]
mov edx, dword [0x450c80]
sub edx, 0x736d0e61
mov dword [0x450c80], edx
jmp 0x41553f
mov ecx, dword [0x44b420]
xor ecx, 0x984d68f1
cmp al, 0x3e
mov dword [0x44b420], ecx
je 0x415764
fld dword [0x45d00c]
lea eax, [esp + 0x38]
mov ecx, esi
fld qword [0x46ee38]
mov dword [esp], eax
fmulp st(1)
fstp qword [0x46ee38]
call fcn.004142d0
mov eax, dword [0x449778]
sub esp, 4
xor eax, 0xd9c0ac38
mov dword [0x449778], eax
mov eax, dword [0x4532c0]
sub eax, 0x61ecb38c
mov dword [0x4532c0], eax
mov eax, dword [0x454f18]
cmp eax, 0x95ad3d3d
je 0x4155b5
mov eax, dword [0x456718]
or eax, 0xf14e4063
mov dword [0x456718], eax
fld dword [0x45ea0c]
add ebp, 1
fld qword [0x47d7e0]
fsubrp st(1)
fstp qword [0x47d7e0]
mov eax, dword [0x450c80]
sub eax, 0x736d0e61
cmp edi, ebp
mov dword [0x450c80], eax
jl 0x4157b0
movzx eax, byte [esp + ebp + 0x30]
mov ecx, dword [0x44a62c]
sub ecx, 0x737a23
test bl, bl
mov dword [0x44a62c], ecx
je 0x41555d
cmp al, 0x3d
ja 0x415490
mov edx, dword [esp + 0x14]
fld dword [0x4670a4]
movzx eax, al
mov ecx, esi
fstp dword [0x45dcc0]
movsx eax, byte [edx + eax]
mov dword [esp], 1
mov dword [esp + 4], eax
call fcn.00413310
movzx eax, word [0x442c08]
mov eax, dword [0x44c724]
sub esp, 8
cmp eax, 0x3884a9b6
jg 0x4154ed
mov eax, dword [0x44cb28]
mov eax, dword [0x454f18]
cmp eax, 0x95ad3d3d
jne 0x4154fd
mov eax, dword [0x4525e4]
cmp eax, 0xdf3ba0cc
jge 0x41550c
fld qword [0x48f518]
fld dword [0x45f638]
fmulp st(1)
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fstp dword [0x45f638]
jmp 0x41550c
fld dword [0x4614ec]
fld dword [0x462630]
fsubrp st(1)
fstp dword [0x462630]
mov eax, dword [esp + 0x14]
fld dword [0x468008]
mov dword [esp], 0x41
fstp dword [0x45e45c]
mov dword [esp + 4], eax
call fcn.00409bd0
mov eax, dword [0x452c20]
imul eax, eax, 0x8a649a17
mov dword [0x452c20], eax
mov eax, dword [0x457354]
or eax, 0x72548de1
mov dword [0x457354], eax
mov eax, dword [0x457bd8]
cmp eax, 0x9c2ff389
jge 0x415663
movsx eax, word [0x43c506]
mov edx, dword [0x44c5a8]
xor eax, edx
mov dword [0x44c5a8], eax
mov byte [esp + 0x34], 0
mov byte [esp + 0x35], 0
mov byte [esp + 0x36], 0
mov byte [esp + 0x37], 0
mov eax, dword [0x453f78]
or eax, 0x73e93eb3
mov dword [0x453f78], eax
mov eax, dword [0x457354]
or eax, 0x72548de1
mov dword [0x457354], eax
mov eax, dword [0x457bd8]
cmp eax, 0x9c2ff389
jge 0x4156b5
movsx eax, word [0x43c506]
mov edx, dword [0x44c5a8]
xor eax, edx
mov dword [0x44c5a8], eax
mov byte [esp + 0x38], 0
mov byte [esp + 0x39], 0
mov byte [esp + 0x3a], 0
mov byte [esp + 0x3b], 0
mov eax, dword [0x4487c8]
imul eax, eax, 0x4e58aa00
mov dword [0x4487c8], eax
mov eax, dword [0x457354]
or eax, 0x72548de1
mov dword [0x457354], eax
mov eax, dword [0x457bd8]
cmp eax, 0x9c2ff389
jge 0x415708
movsx eax, word [0x43c506]
mov edx, dword [0x44c5a8]
xor eax, edx
mov dword [0x44c5a8], eax
mov byte [esp + 0x3c], 0
mov byte [esp + 0x3d], 0
mov byte [esp + 0x3e], 0
mov byte [esp + 0x3f], 0
fld dword [0x45f138]
fstp qword [0x4949e8]
add esp, 0x4c
pop ebx
pop esi
pop edi
pop ebp
ret
movzx eax, word [0x441852]
and ax, 0x7dc5
mov word [0x441852], ax
jmp 0x4150eb
mov eax, dword [0x45737c]
add eax, 0x1ad669d
mov dword [0x45737c], eax
jmp 0x415316
movzx eax, word [0x439aae]
mov ecx, esi
imul ax, ax, 0x59c9
mov word [0x439aae], ax
lea eax, [esp + 0x34]
mov dword [esp], eax
call fcn.004142d0
fld qword [0x479398]
sub esp, 4
fld dword [0x45a928]
fsubrp st(1)
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fstp dword [0x45a928]
jmp 0x4154de
mov eax, dword [0x44bc08]
add eax, 0x6f33841c
cmp edi, 2
mov dword [0x44bc08], eax
jg 0x4155f0
movzx ebx, byte [esp + 0x1a]
mov esi, dword [esp + 0x6c]
jmp 0x41581c
movzx eax, word [0x43d5de]
mov ecx, esi
add ax, 0x1974
mov word [0x43d5de], ax
lea eax, [esp + 0x3c]
mov dword [esp], eax
call fcn.004142d0
mov eax, dword [0x44bb60]
sub esp, 4
add eax, 0x172ef820
mov dword [0x44bb60], eax
mov eax, dword [0x44bb48]
xor eax, 0xf6d34432
cmp edi, 3
mov dword [0x44bb48], eax
je 0x4155f0
fld dword [0x4683b4]
add edi, 1
fld dword [0x46a168]
fsubrp st(1)
fstp dword [0x46a168]
mov eax, dword [0x4467c8]
sub eax, 0x633c7d67
test bl, bl
mov dword [0x4467c8], eax
jne 0x4157d3
mov eax, dword [0x457dbc]
mov dword [esp + 4], 0x3d
mov ecx, esi
mov dword [esp], 1
xor eax, 0x18fc91c6
mov dword [0x457dbc], eax
call fcn.00413310
mov eax, dword [0x44fd60]
sub esp, 8
cmp eax, 0xce62b611
jl 0x415804
mov eax, dword [0x448d28]
cmp eax, 0x636e8bd2
jle 0x415804
mov eax, dword [0x453934]
imul eax, eax, 0x72fd0416
mov dword [0x453934], eax
jmp 0x415804
fld qword [0x472188]
fld dword [0x46050c]
faddp st(1)
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fstp dword [0x46050c]
jmp 0x41519e
mov ecx, dword [0x453178]
jmp 0x415418
movzx eax, word [0x439cca]
add ax, 0xa08
mov word [0x439cca], ax
jmp 0x415604