Function at 0x401cd0
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
fld dword [0x4523c8]
push ebx
fsub qword [0x44c2c8]
push esi
push edi
fstp dword [0x4523c8]
mov ax, word [0x45243c]
movsx ecx, ax
mov dword [ebp - 0xc], ecx
fild dword [ebp - 0xc]
fld dword [0x4523c8]
fsub qword [0x44d1b8]
fsubp st(1)
call fcn.0041e720
push 0x41
mov word [0x45243c], ax
push 0x30d7
xor esi, esi
call fcn.00417330
mov edx, dword [0x452298]
mov ebx, eax
mov eax, dword [0x452480]
lea ecx, [eax + edx + 0x21ea74f]
push 5
mov dword [0x452298], ecx
inc dword [0x452480]
push 0x16f1
mov dword [ebp - 0xc], ebx
call fcn.00417330
movsx edx, byte [ebx + 0x3e]
push edx
mov edi, eax
push edi
lea eax, [ebp - 0x10]
push 4
push eax
call fcn.004202d3
push 5
push 0x16f1
call fcn.00417330
push edi
push 5
mov ebx, eax
call fcn.00411ac0
mov ecx, dword [ebp - 0xc]
movsx edx, byte [ecx + 0x3f]
push edx
push ebx
lea eax, [ebp - 0x14]
push 4
push eax
call fcn.004202d3
mov cx, word [0x452094]
mov dx, word [0x45207c]
dec word [0x452094]
movsx eax, cx
movsx ecx, dx
add eax, 0x4b20224c
add ecx, 0x603d2c4a
add esp, 0x40
cmp eax, ecx
jg 0x401dc6
add dword [0x45204c], 0xc33b7f8b
jmp 0x401dd6
movsd xmm0, qword [0x44d1b0]
movsd qword [0x4523b0], xmm0
push 5
push 0x16f1
call fcn.00417330
push ebx
push 5
mov edi, eax
call fcn.00411ac0
mov edx, dword [0x452444]
movzx ecx, word [0x452194]
mov eax, 0x9495df9d
sub eax, edx
imul ecx, eax
push 0x3d
push edi
lea edx, [ebp - 0x18]
push 4
push edx
mov word [0x452194], cx
call fcn.004202d3
push edi
push 5
call fcn.00411ac0
mov ebx, dword [ebp + 0xc]
add esp, 0x28
test ebx, ebx
je 0x40207d
mov edi, edi
mov eax, dword [ebp + 8]
mov cl, byte [eax]
mov edi, 1
mov byte [ebp + esi - 4], cl
add esi, edi
add eax, edi
sub ebx, edi
mov dword [ebp + 8], eax
cmp esi, 3
jne 0x402075
mov al, byte [ebp - 4]
fld dword [0x45244c]
mov cl, byte [ebp - 3]
fsub qword [0x44d1a8]
mov dl, al
shr dl, 2
fmul dword [0x4524b4]
mov byte [ebp - 8], dl
mov dl, cl
and al, 3
shl al, 4
shr dl, 4
add al, dl
mov byte [ebp - 7], al
movzx eax, byte [ebp - 2]
and cl, 0xf
add cl, cl
add cl, cl
shr al, 6
add cl, al
mov byte [ebp - 6], cl
fstp dword [0x4524b4]
fld dword [0x45244c]
movzx ecx, byte [ebp - 2]
fadd qword [0x44c2c8]
and cl, 0x3f
mov byte [ebp - 5], cl
xor esi, esi
fstp dword [0x45244c]
fld dword [0x4520a0]
fsub qword [0x44d1a0]
fsub qword [0x44d198]
fmul dword [0x45211c]
fstp dword [0x45211c]
cmp byte [ebp + 0x10], 0
je 0x401fc4
mov al, byte [ebp + esi - 8]
cmp al, 0x3d
jbe 0x401fc4
add dword [0x452114], edi
mov dx, word [0x452150]
movsx ecx, dx
mov edx, dword [0x452418]
add ecx, edx
mov edx, dword [0x452114]
add edx, ecx
mov word [0x452150], dx
add dword [0x452418], edi
cmp al, 0x3e
jne 0x401f2c
mov ecx, dword [ebp + 0x14]
lea eax, [ebp - 0x10]
push eax
call fcn.00414f40
jmp 0x402030
lea ecx, [ebp - 0x14]
push ecx
mov ecx, dword [ebp + 0x14]
call fcn.00414f40
mov dx, word [0x452164]
fld qword [0x4524b8]
mov cx, word [0x452130]
movsx eax, dx
movsx edx, cx
sub eax, 0x1f843de3
mov dword [ebp + 0xc], edx
cvtsi2sd xmm0, eax
mov ax, word [0x4524ac]
fild dword [ebp + 0xc]
dec word [0x4524ac]
movsx ecx, ax
fsubp st(1)
cvtsi2sd xmm1, ecx
fstp qword [ebp - 0x20]
addsd xmm1, qword [ebp - 0x20]
comisd xmm1, xmm0
jb 0x402030
fld dword [0x4523a0]
fadd qword [0x44d190]
fsub qword [0x44d188]
fld qword [0x44d180]
fld dword [0x4523a0]
fadd qword [0x44c2c8]
fstp dword [0x4523a0]
fxch st(1)
fcompi st(1)
fstp st(0)
jbe 0x402030
mov dx, word [0x452194]
jmp 0x402030
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.00414080
fld qword [0x452050]
fadd qword [0x44c2c8]
fstp qword [0x452050]
fld qword [0x452050]
mov eax, dword [0x452160]
add dword [0x452160], edi
sub eax, 0xd9bdf78
mov dword [ebp + 0xc], eax
fild dword [ebp + 0xc]
fxch st(1)
fcompi st(1)
fstp st(0)
jbe 0x402030
mov cx, word [0x452414]
movsx edx, cx
mov dword [ebp + 0xc], edx
fild dword [ebp + 0xc]
fmul qword [0x452270]
call fcn.0041e720
mov word [0x452414], ax
add esi, edi
cmp esi, 4
jne 0x401ed4
fld qword [0x452200]
call fcn.0041e720
mov dword [0x452198], eax
mov ax, word [0x452138]
movsx ecx, ax
add ecx, 0x582e762c
mov dword [ebp + 0xc], ecx
xor esi, esi
fild dword [ebp + 0xc]
fmul qword [0x4521c8]
fstp qword [0x4521c8]
dec word [0x452138]
test ebx, ebx
jne 0x401e30
mov edx, dword [0x4520d4]
movzx ecx, word [0x45230c]
mov eax, 0x9f4fb221
sub eax, edx
imul ecx, eax
or ebx, 0xffffffff
mov word [0x45230c], cx
add dword [0x4520d4], ebx
test esi, esi
je 0x4023fe
fld dword [0x4523d8]
mov dx, word [0x4521ac]
mov cx, word [0x45213c]
fstp qword [ebp - 0x20]
movsd xmm0, qword [ebp - 0x20]
movsx eax, dx
cvtsi2sd xmm1, eax
mov ax, word [0x452288]
movsx edx, cx
subsd xmm0, xmm1
cvtsi2sd xmm1, edx
movsx ecx, ax
subsd xmm0, xmm1
cvtsi2sd xmm1, ecx
mulsd xmm1, xmm0
cvttsd2si edx, xmm1
mov word [0x452288], dx
add word [0x45213c], bx
add word [0x4521ac], bx
cmp esi, 3
jge 0x4021ca
mov edi, 3
sub edi, esi
push edi
lea eax, [ebp + esi - 4]
push 0
push eax
call fcn.0041e5d0
fld qword [0x44d178]
fld qword [0x44d170]
add esp, 0xc
fld qword [0x44d168]
jmp 0x40213e
fstp st(0)
add word [0x452384], bx
mov ax, word [0x452384]
movsx ecx, ax
mov dword [0x45215c], ecx
fld qword [0x4520b0]
mov edx, dword [0x452230]
fsub st(3)
mov dword [ebp + 0xc], edx
fild dword [ebp + 0xc]
fsubp st(1)
fld dword [0x45229c]
fsubr st(3)
fld qword [0x4520b0]
fld1
fsub st(1), st(0)
fxch st(1)
fstp qword [0x4520b0]
fxch st(2)
fcompi st(1)
fstp st(0)
jbe 0x4021b9
mov eax, dword [0x4520f0]
mov dword [ebp + 0xc], eax
fild dword [ebp + 0xc]
fld dword [0x45244c]
fadd st(3)
fsubp st(1)
call fcn.0041e720
mov dword [0x4520f0], eax
fld dword [0x45244c]
fadd st(1)
fstp dword [0x45244c]
sub edi, 1
jne 0x40213c
fstp st(3)
fstp st(1)
fstp st(0)
jmp 0x4021cc
fld1
mov al, byte [ebp - 4]
fld dword [0x452238]
fsub qword [0x44d160]
mov cl, al
shr cl, 2
mov byte [ebp - 8], cl
mov cl, byte [ebp - 3]
mov dl, cl
and al, 3
and cl, 0xf
shl al, 4
shr dl, 4
add al, dl
add cl, cl
add cl, cl
mov byte [ebp - 7], al
mov al, byte [ebp - 2]
mov byte [ebp - 6], cl
fstp dword [0x452238]
mov cl, al
shr cl, 6
add byte [ebp - 6], cl
and al, 0x3f
xor edi, edi
mov byte [ebp - 5], al
test esi, esi
jl 0x4022b2
cmp byte [ebp + 0x10], 0
fstp st(0)
je 0x402270
mov al, byte [ebp + edi - 8]
cmp al, 0x3d
jbe 0x402270
fld dword [0x452484]
mov dx, word [0x452158]
movsx ecx, dx
mov dword [ebp + 0xc], ecx
mov ecx, dword [ebp + 0x14]
fild dword [ebp + 0xc]
faddp st(1)
fadd qword [0x452388]
fstp qword [0x452388]
cmp al, 0x3e
jne 0x402265
lea edx, [ebp - 0x10]
push edx
call fcn.00414f40
jmp 0x402285
lea eax, [ebp - 0x14]
push eax
call fcn.00414f40
jmp 0x402285
movzx ecx, byte [ebp + edi - 8]
mov edx, dword [ebp - 0xc]
movzx eax, byte [ecx + edx]
mov ecx, dword [ebp + 0x14]
push eax
call fcn.00414080
fld dword [0x452124]
inc edi
cmp edi, esi
fld1
fadd st(1), st(0)
fxch st(1)
fstp dword [0x452124]
fld dword [0x452124]
fsub qword [0x44d158]
fstp qword [0x4520e8]
jle 0x40221f
fld qword [0x4520b0]
fadd st(1)
fstp qword [0x4520b0]
fld dword [str..h_Nv]
fsub st(1)
fstp dword [str..h_Nv]
fld qword [0x4520e8]
fadd qword [0x452258]
fadd qword [0x4520b0]
fld dword [str..h_Nv]
fsub qword [0x44d150]
fxch st(1)
fcompi st(1)
fstp st(0)
jb 0x402310
mov ecx, dword [0x452444]
fstp st(0)
mov dword [ebp + 0xc], ecx
fild dword [ebp + 0xc]
fsub dword [0x452018]
fstp dword [0x4522bc]
jmp 0x402363
fld dword [0x452110]
fsub st(1)
fstp dword [0x452110]
mov edx, dword [0x4520d4]
mov dword [ebp + 0xc], edx
fild dword [ebp + 0xc]
fsub dword [0x452110]
fld qword [0x44d148]
fxch st(1)
fcompi st(1)
fstp st(0)
jb 0x402361
fadd dword [0x452358]
fstp dword [0x452358]
fld dword [0x452358]
mov eax, dword [0x452230]
fstp st(0)
fld dword [0x452208]
fstp st(0)
jmp 0x402363
fstp st(0)
cmp esi, 3
jge 0x4023b9
mov edi, 3
sub edi, esi
nop
cmp byte [ebp + 0x10], 0
je 0x402398
lea ecx, [ebp - 0x18]
push ecx
mov ecx, dword [ebp + 0x14]
call fcn.00414f40
movzx edx, word [0x452248]
imul edx, edx, 0x14e4618b
mov word [0x452248], dx
jmp 0x4023b4
fld dword [0x4522e0]
mov ecx, dword [ebp + 0x14]
fmul qword [0x44d140]
push 0x3d
fstp dword [0x4522e0]
call fcn.00414080
sub edi, 1
jne 0x402370
fld qword [0x452368]
mov ax, word [0x4524c4]
mov edx, dword [0x452254]
fadd qword [0x44d138]
add word [0x4524c4], bx
movsx ecx, ax
mov eax, 0x82ad63f1
sub eax, ecx
add edx, eax
mov dword [ebp + 0xc], edx
fild dword [ebp + 0xc]
fxch st(1)
fcompi st(1)
fstp st(0)
jb 0x4023fe
mov ax, word [0x45246c]
mov word [0x452318], ax
fld qword [0x452300]
fld1
fsub st(1), st(0)
fxch st(1)
fstp qword [0x452300]
fld qword [0x452300]
mov ecx, dword [0x452044]
mov dword [ebp + 0xc], ecx
fild dword [ebp + 0xc]
faddp st(1)
fld qword [0x452128]
fadd qword [0x4523f0]
fld qword [0x452128]
faddp st(3)
fxch st(2)
fstp qword [0x452128]
add dword [0x452044], ebx
fxch st(1)
fcompi st(1)
fstp st(0)
jb 0x402475
mov dx, word [0x45245c]
movzx ecx, word [0x452188]
movsx eax, dx
sub ecx, eax
add ecx, 0x5e206f68
mov word [0x452188], cx
add word [0x45245c], bx
mov edx, dword [ebp - 0xc]
push edx
push 0x41
call fcn.00411ac0
add esp, 8
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret