Function at 0x4213fc
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x4c
mov eax, dword [esi]
mov edx, dword [ebp + 0x18]
mov ecx, dword [edx + 0x30]
mov dword [ebp - 0x10], eax
mov eax, dword [esi + 4]
mov dword [ebp - 0x14], eax
mov eax, dword [edx + 0x1c]
mov dword [ebp - 8], eax
mov eax, dword [edx + 0x2c]
push ebx
push edi
mov edi, dword [edx + 0x18]
mov dword [ebp - 0xc], ecx
cmp ecx, eax
jae 0x42142d
sub eax, ecx
dec eax
jmp 0x421432
mov eax, dword [edx + 0x28]
sub eax, ecx
fld qword [0x473920]
mov dword [ebp - 0x20], eax
fstp qword [ebp - 0x3c]
fld qword [0x473918]
fstp qword [ebp - 0x44]
fld qword [0x473910]
fstp qword [ebp - 0x4c]
fld qword [0x473908]
fstp qword [ebp - 0x4c]
fld qword [0x473900]
fstp qword [ebp - 0x4c]
fld qword [ebp - 0x44]
fcomp qword [ebp - 0x44]
fnstsw ax
test ah, 1
jne 0x421478
fld qword [ebp - 0x4c]
fadd qword [ebp - 0x3c]
fstp qword [ebp - 0x4c]
mov eax, dword [ebp + 8]
fld qword [0x473a68]
mov eax, dword [eax*4 + 0x45a090]
fld qword [0x473a60]
fld qword [0x473a58]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp + 0xc]
fld qword [0x473960]
mov eax, dword [eax*4 + 0x45a090]
fld qword [0x473a50]
mov dword [ebp - 0x28], eax
jmp 0x4214cc
fxch st(4)
jmp 0x4214cc
mov eax, dword [ebp - 0x10]
movzx eax, byte [eax]
dec dword [ebp - 0x14]
mov ecx, edi
shl eax, cl
or dword [ebp - 8], eax
inc dword [ebp - 0x10]
add edi, 8
cmp edi, 0x14
jb 0x4214b6
fld qword [0x473920]
fstp qword [ebp - 0x3c]
fld qword [0x473918]
fstp qword [ebp - 0x44]
fld qword [0x473910]
fstp qword [ebp - 0x4c]
fld qword [0x473908]
fstp qword [ebp - 0x4c]
fld qword [0x473900]
fstp qword [ebp - 0x4c]
fld qword [ebp - 0x44]
fcomp qword [ebp - 0x44]
fnstsw ax
test ah, 1
jne 0x421514
fld qword [ebp - 0x4c]
fadd qword [ebp - 0x3c]
fstp qword [ebp - 0x4c]
mov eax, dword [ebp - 0x24]
and eax, dword [ebp - 8]
mov ecx, dword [ebp + 0x10]
lea eax, [ecx + eax*8]
movzx ecx, byte [eax]
mov dword [ebp - 0x18], ecx
test ecx, ecx
movzx ecx, byte [eax + 1]
jne 0x421679
shr dword [ebp - 8], cl
fxch st(4)
movzx ecx, byte [eax + 1]
mov al, byte [eax + 4]
mov ebx, dword [ebp - 0xc]
mov byte [ebx], al
sub edi, ecx
fst qword [ebp - 0x4c]
inc ebx
fld qword [0x473a48]
dec dword [ebp - 0x20]
fstp qword [ebp - 0x44]
mov dword [ebp - 0xc], ebx
fld qword [0x473a40]
fstp qword [ebp - 0x3c]
fld qword [ebp - 0x4c]
fsub qword [ebp - 0x44]
fstp qword [ebp - 0x44]
jmp 0x421e42
mov dword [ebp + 8], 0x3f
add dword [ebp + 8], 0xfffffffa
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 8]
imul ecx, edx
mov edx, dword [ebp + 8]
imul edx, edx, 0xffffffac
sub edx, ecx
mov ecx, dword [ebp + 8]
mov ebx, dword [ebp + 8]
imul ecx, ebx
mov ebx, dword [ebp + 8]
imul ecx, ebx
imul ecx, ecx, 0x3d
add edx, ecx
mov ecx, dword [ebp + 8]
sub edx, ecx
sub edx, 0xb9
mov dword [ebp + 8], edx
add dword [ebp + 8], 0x55
mov ecx, dword [ebp + 8]
push 0x52
pop edx
sub edx, ecx
add edx, dword [ebp + 8]
add edx, dword [ebp + 8]
mov dword [ebp + 8], edx
mov ecx, dword [ebp + 8]
imul ecx, ecx, 0x28
mov dword [ebp + 8], ecx
mov ecx, dword [ebp - 0x18]
add dword [ebp + 8], 0x49
test cl, 0x40
jne 0x422066
mov ecx, dword [ecx*4 + 0x45a090]
and ecx, dword [ebp - 8]
add ecx, dword [eax + 4]
lea eax, [eax + ecx*8]
movzx ecx, byte [eax]
mov dword [ebp - 0x18], ecx
test ecx, ecx
je 0x421cb3
fld qword [0x473a38]
fstp qword [ebp - 0x44]
fld qword [0x473a30]
fstp qword [ebp - 0x4c]
fld qword [0x473a28]
fstp qword [ebp - 0x34]
fld qword [0x473988]
fstp qword [ebp - 0x34]
fld qword [0x473930]
fstp qword [ebp - 0x3c]
fld qword [ebp - 0x34]
fsub qword [ebp - 0x44]
fstp qword [ebp - 0x3c]
fld qword [ebp - 0x4c]
fmul qword [0x473a20]
fstp qword [ebp - 0x4c]
fld qword [ebp - 0x3c]
fadd qword [0x473a18]
fadd qword [ebp - 0x44]
fld qword [ebp - 0x44]
fdiv st(5)
fsubp st(1)
fstp qword [ebp - 0x34]
fld qword [ebp - 0x34]
fadd qword [ebp - 0x34]
fsub st(3)
fld qword [ebp - 0x34]
fmul qword [ebp - 0x34]
fsubp st(1)
fadd qword [0x473a10]
fld qword [ebp - 0x34]
movzx ecx, byte [eax + 1]
fdiv qword [0x473a08]
fsubp st(1)
fstp qword [ebp - 0x3c]
shr dword [ebp - 8], cl
mov dword [ebp + 8], 0x3f
add dword [ebp + 8], 0xfffffffa
sub edi, ecx
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 8]
imul ecx, edx
mov edx, dword [ebp + 8]
imul edx, edx, 0xffffffac
sub edx, ecx
mov ecx, dword [ebp + 8]
mov ebx, dword [ebp + 8]
imul ecx, ebx
mov ebx, dword [ebp + 8]
imul ecx, ebx
imul ecx, ecx, 0x3d
add edx, ecx
mov ecx, dword [ebp + 8]
sub edx, ecx
sub edx, 0xb9
mov dword [ebp + 8], edx
add dword [ebp + 8], 0x55
mov ecx, dword [ebp + 8]
push 0x52
pop edx
sub edx, ecx
add edx, dword [ebp + 8]
add edx, dword [ebp + 8]
mov dword [ebp + 8], edx
mov ecx, dword [ebp + 8]
imul ecx, ecx, 0x28
mov dword [ebp + 8], ecx
mov ecx, dword [ebp - 0x18]
add dword [ebp + 8], 0x49
test cl, 0x10
je 0x42156f
and ecx, 0xf
mov edx, dword [ecx*4 + 0x45a090]
and edx, dword [ebp - 8]
shr dword [ebp - 8], cl
add edx, dword [eax + 4]
sub edi, ecx
mov dword [ebp + 0xc], edx
jmp 0x42171a
mov eax, dword [ebp - 0x10]
movzx eax, byte [eax]
dec dword [ebp - 0x14]
mov ecx, edi
shl eax, cl
or dword [ebp - 8], eax
inc dword [ebp - 0x10]
add edi, 8
cmp edi, 0xf
jb 0x421704
fld qword [0x4739a0]
fstp qword [ebp - 0x34]
fld qword [0x473998]
fstp qword [ebp - 0x3c]
fld qword [0x473990]
fstp qword [ebp - 0x1c]
fld qword [0x473988]
fstp qword [ebp - 0x44]
fld qword [ebp - 0x1c]
fcomp qword [ebp - 0x34]
fnstsw ax
test ah, 5
jp 0x4217c5
fld qword [ebp - 0x3c]
fadd qword [0x473980]
fstp qword [ebp - 0x3c]
fld qword [ebp - 0x1c]
fld qword [ebp - 0x1c]
fucompp
fnstsw ax
test ah, 0x44
jp 0x4217c5
fld qword [ebp - 0x44]
fld qword [ebp - 0x44]
fucompp
fnstsw ax
test ah, 0x44
jp 0x4217af
fld qword [ebp - 0x1c]
fld qword [ebp - 0x44]
fmul qword [0x473978]
fsubp st(1)
fstp qword [ebp - 0x34]
fld qword [ebp - 0x3c]
fadd qword [0x473970]
fadd qword [ebp - 0x1c]
fadd qword [ebp - 0x34]
fld qword [ebp - 0x34]
fmul qword [0x473968]
fsubp st(1)
fld qword [ebp - 0x1c]
fmul st(3)
fsubp st(1)
fstp qword [ebp - 0x1c]
fld qword [ebp - 0x3c]
fcomp qword [ebp - 0x34]
fnstsw ax
test ah, 0x41
jp 0x4217c5
fld qword [ebp - 0x44]
fsub qword [ebp - 0x1c]
fstp qword [ebp - 0x34]
mov eax, dword [ebp - 0x28]
and eax, dword [ebp - 8]
mov ecx, dword [ebp + 0x14]
lea edx, [ecx + eax*8]
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 1]
movzx ebx, byte [edx]
shr dword [ebp - 8], cl
sub edi, eax
test bl, 0x10
je 0x4217f6
fld qword [0x473920]
and ebx, 0xf
jmp 0x421905
fstp st(0)
test bl, 0x40
jne 0x421f1c
mov eax, dword [edx + 4]
fld qword [0x473a38]
fstp qword [ebp - 0x44]
lea eax, [edx + eax*8]
fld qword [0x473a30]
fstp qword [ebp - 0x4c]
fld qword [0x473a28]
fstp qword [ebp - 0x34]
fld qword [0x473988]
fstp qword [ebp - 0x34]
fld qword [0x473930]
fstp qword [ebp - 0x3c]
fld qword [ebp - 0x34]
fsub qword [ebp - 0x44]
fstp qword [ebp - 0x3c]
fld qword [ebp - 0x4c]
fmul qword [0x473a20]
fstp qword [ebp - 0x4c]
fld qword [ebp - 0x3c]
fadd qword [0x473a18]
fadd qword [ebp - 0x44]
fld qword [ebp - 0x44]
fdiv st(5)
fsubp st(1)
fstp qword [ebp - 0x34]
fld qword [ebp - 0x34]
fadd qword [ebp - 0x34]
fsub st(3)
fld qword [ebp - 0x34]
fmul qword [ebp - 0x34]
fsubp st(1)
fadd qword [0x473a10]
fld qword [ebp - 0x34]
mov ecx, dword [ebx*4 + 0x45a090]
fdiv qword [0x473a08]
and ecx, dword [ebp - 8]
lea edx, [eax + ecx*8]
movzx ebx, byte [edx]
fsubp st(1)
fstp qword [ebp - 0x3c]
fld qword [0x473920]
fst qword [ebp - 0x3c]
fld qword [0x473918]
fstp qword [ebp - 0x4c]
fld qword [0x473910]
fstp qword [ebp - 0x44]
fld qword [0x473908]
fstp qword [ebp - 0x44]
fld qword [0x473900]
fstp qword [ebp - 0x44]
fld qword [ebp - 0x4c]
fcomp qword [ebp - 0x4c]
fnstsw ax
test ah, 1
jne 0x4218d4
fld qword [ebp - 0x44]
fadd qword [ebp - 0x3c]
fstp qword [ebp - 0x44]
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 1]
shr dword [ebp - 8], cl
sub edi, eax
test bl, 0x10
je 0x4217f4
jmp 0x4217ec
mov eax, dword [ebp - 0x10]
movzx eax, byte [eax]
dec dword [ebp - 0x14]
mov ecx, edi
shl eax, cl
or dword [ebp - 8], eax
inc dword [ebp - 0x10]
add edi, 8
cmp edi, ebx
jb 0x4218ef
mov eax, dword [ebx*4 + 0x45a090]
and eax, dword [ebp - 8]
mov ecx, ebx
add eax, dword [edx + 4]
fst qword [ebp - 0x3c]
fld qword [0x473918]
shr dword [ebp - 8], cl
fstp qword [ebp - 0x4c]
mov dword [ebp + 8], eax
fld qword [0x473910]
sub edi, ebx
fstp qword [ebp - 0x44]
fld qword [0x473908]
fstp qword [ebp - 0x44]
fld qword [0x473900]
fstp qword [ebp - 0x44]
fld qword [ebp - 0x4c]
fcomp qword [ebp - 0x4c]
fnstsw ax
test ah, 1
jne 0x42195d
fld qword [ebp - 0x44]
fadd qword [ebp - 0x3c]
fstp qword [ebp - 0x44]
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp - 0xc]
sub dword [ebp - 0x20], eax
mov edx, dword [ebp + 0x18]
sub ecx, dword [ebp + 8]
mov eax, dword [edx + 0x24]
cmp ecx, eax
jae 0x421b91
mov ebx, dword [edx + 0x28]
sub ebx, eax
add ecx, ebx
cmp ecx, eax
jb 0x42197c
mov eax, dword [edx + 0x28]
sub eax, ecx
mov dword [ebp - 0x18], eax
cmp dword [ebp + 0xc], eax
jbe 0x421ac8
sub dword [ebp + 0xc], eax
fstp st(0)
mov ebx, dword [ebp - 0xc]
mov al, byte [ecx]
mov byte [ebx], al
inc ebx
inc ecx
dec dword [ebp - 0x18]
jne 0x42199b
fxch st(2)
fst qword [ebp - 0x1c]
fld qword [ebp - 0x1c]
fsub qword [ebp - 0x1c]
fld qword [ebp - 0x1c]
fmul qword [0x473a00]
fsubp st(1)
fadd st(2)
fadd qword [ebp - 0x1c]
fstp qword [ebp - 0x1c]
fld qword [ebp - 0x1c]
fmul qword [0x4739f8]
fld qword [ebp - 0x1c]
fadd qword [0x4739f0]
faddp st(1)
fstp qword [ebp - 0x1c]
fld qword [ebp - 0x1c]
fadd qword [0x473980]
fadd qword [ebp - 0x1c]
fld qword [ebp - 0x1c]
fmul qword [0x4739e8]
faddp st(1)
fsub qword [0x4739e0]
fstp qword [ebp - 0x1c]
fld qword [ebp - 0x1c]
fmul qword [ebp - 0x1c]
fld qword [ebp - 0x1c]
fadd qword [0x4739d8]
faddp st(1)
fld qword [ebp - 0x1c]
fmul qword [0x4739d0]
fmul qword [ebp - 0x1c]
fsubp st(1)
fadd st(5)
fsub qword [ebp - 0x1c]
fsub qword [0x4739c8]
fadd qword [ebp - 0x1c]
fsub qword [ebp - 0x1c]
fsub qword [ebp - 0x1c]
fstp qword [ebp - 0x1c]
fld qword [ebp - 0x1c]
fdiv st(4)
fadd qword [ebp - 0x1c]
fadd qword [ebp - 0x1c]
fsub qword [ebp - 0x1c]
fstp qword [ebp - 0x1c]
fld qword [ebp - 0x1c]
fsub qword [ebp - 0x1c]
fsub qword [ebp - 0x1c]
fstp qword [ebp - 0x1c]
fld qword [ebp - 0x1c]
fadd qword [ebp - 0x1c]
fstp qword [ebp - 0x1c]
fld qword [ebp - 0x1c]
fmul qword [ebp - 0x1c]
fadd qword [ebp - 0x1c]
fstp qword [ebp - 0x1c]
fld qword [ebp - 0x1c]
mov eax, dword [edx + 0x24]
fsub st(3)
fstp qword [ebp - 0x1c]
fld qword [0x4739c0]
fstp qword [ebp - 0x4c]
fld qword [0x473a48]
fstp qword [ebp - 0x4c]
fld qword [0x473928]
fstp qword [ebp - 0x4c]
fld qword [0x4739b8]
fstp qword [ebp - 0x44]
fld qword [0x4739b0]
fstp qword [ebp - 0x3c]
fxch st(2)
fst qword [ebp - 0x4c]
fld qword [ebp - 0x4c]
fmul qword [ebp - 0x44]
fmul qword [ebp - 0x3c]
fsub qword [0x4739a8]
fsub qword [ebp - 0x4c]
fstp qword [ebp - 0x44]
mov cl, byte [eax]
mov byte [ebx], cl
inc ebx
inc eax
dec dword [ebp + 0xc]
jne 0x421ab5
mov dword [ebp - 0xc], ebx
jmp 0x421e40
mov al, byte [ecx]
mov edx, dword [ebp - 0xc]
mov byte [edx], al
mov dword [ebp + 8], 0x3f
add dword [ebp + 8], 0xfffffffa
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 8]
imul eax, edx
mov edx, dword [ebp + 8]
imul edx, edx, 0xffffffac
sub edx, eax
mov eax, dword [ebp + 8]
mov ebx, dword [ebp + 8]
imul eax, ebx
mov ebx, dword [ebp + 8]
imul eax, ebx
imul eax, eax, 0x3d
add edx, eax
mov eax, dword [ebp + 8]
sub edx, eax
sub edx, 0xb9
mov dword [ebp + 8], edx
add dword [ebp + 8], 0x55
mov eax, dword [ebp + 8]
inc dword [ebp - 0xc]
mov ebx, dword [ebp - 0xc]
push 0x52
pop edx
sub edx, eax
add edx, dword [ebp + 8]
add edx, dword [ebp + 8]
mov dword [ebp + 8], edx
mov eax, dword [ebp + 8]
imul eax, eax, 0x28
mov dword [ebp + 8], eax
add dword [ebp + 8], 0x49
mov al, byte [ecx + 1]
mov byte [ebx], al
inc ebx
add ecx, 2
sub dword [ebp + 0xc], 2
mov al, byte [ecx]
mov byte [ebx], al
fst qword [ebp - 0x3c]
fld qword [0x473918]
inc ebx
fstp qword [ebp - 0x4c]
inc ecx
fld qword [0x473910]
fstp qword [ebp - 0x44]
fld qword [0x473908]
fstp qword [ebp - 0x44]
fld qword [0x473900]
fstp qword [ebp - 0x44]
fld qword [ebp - 0x4c]
fcomp qword [ebp - 0x4c]
fnstsw ax
test ah, 1
jne 0x421b85
fld qword [ebp - 0x44]
fadd qword [ebp - 0x3c]
fstp qword [ebp - 0x44]
dec dword [ebp + 0xc]
jne 0x421b42
fstp st(0)
jmp 0x421ca8
mov al, byte [ecx]
mov edx, dword [ebp - 0xc]
mov byte [edx], al
mov dword [ebp + 8], 0x43
mov eax, dword [ebp + 8]
inc dword [ebp - 0xc]
inc ecx
mov dword [ebp - 0x18], ecx
mov ecx, dword [ebp + 8]
imul eax, ecx
mov ecx, dword [ebp + 8]
sub eax, ecx
add eax, dword [ebp + 8]
push 0xfffffffffffffffd
add eax, dword [ebp + 8]
mov ecx, dword [ebp + 8]
lea eax, [eax + ecx + 0x46]
mov dword [ebp + 8], eax
mov eax, dword [ebp + 8]
pop ecx
sub ecx, eax
add ecx, dword [ebp + 8]
push 0x24
add ecx, dword [ebp + 8]
mov dword [ebp + 8], ecx
mov eax, dword [ebp + 8]
cdq
pop ecx
idiv ecx
push 0xffffffffffffffe9
pop ebx
push 0x53
mov ecx, eax
mov eax, dword [ebp + 8]
cdq
idiv ebx
sub eax, ecx
mov ecx, dword [ebp + 8]
imul ecx, ecx, 0x29
sub eax, ecx
mov ecx, dword [ebp + 8]
sub eax, ecx
mov ecx, dword [ebp + 8]
sub eax, ecx
mov ecx, dword [ebp + 8]
sub eax, ecx
add eax, dword [ebp + 8]
add eax, dword [ebp + 8]
mov ecx, dword [ebp + 8]
lea eax, [eax + ecx + 0x61]
mov dword [ebp + 8], eax
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 8]
sub eax, ecx
mov dword [ebp + 8], eax
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 8]
imul eax, ecx
imul eax, eax, 0x16da
cdq
pop ecx
idiv ecx
mov dword [ebp + 8], eax
mov eax, dword [ebp + 8]
add eax, dword [ebp + 8]
mov ecx, dword [ebp + 8]
lea eax, [eax + ecx + 0x2a]
mov dword [ebp + 8], eax
mov eax, dword [ebp + 8]
add eax, dword [ebp + 8]
dec dword [ebp + 0xc]
mov dword [ebp + 8], eax
fstp qword [ebp - 0x3c]
fld qword [0x473918]
fstp qword [ebp - 0x4c]
fld qword [0x473910]
fstp qword [ebp - 0x44]
fld qword [0x473908]
fstp qword [ebp - 0x44]
fld qword [0x473900]
fstp qword [ebp - 0x44]
fld qword [ebp - 0x4c]
fcomp qword [ebp - 0x4c]
fnstsw ax
test ah, 1
jne 0x421c8e
fld qword [ebp - 0x44]
fadd qword [ebp - 0x3c]
fstp qword [ebp - 0x44]
mov eax, dword [ebp - 0x18]
mov cl, byte [eax]
mov ebx, dword [ebp - 0xc]
mov byte [ebx], cl
inc ebx
inc eax
dec dword [ebp + 0xc]
mov cl, byte [eax]
mov byte [ebx], cl
inc ebx
inc eax
dec dword [ebp + 0xc]
jne 0x421c9d
mov edx, dword [ebp + 0x18]
mov dword [ebp - 0xc], ebx
jmp 0x421e40
movzx ecx, byte [eax + 1]
fxch st(2)
fst qword [ebp - 0x1c]
mov ebx, dword [ebp - 0xc]
fld qword [ebp - 0x1c]
shr dword [ebp - 8], cl
fsub qword [ebp - 0x1c]
sub edi, ecx
fld qword [ebp - 0x1c]
fmul qword [0x473a00]
fsubp st(1)
fadd st(2)
fadd qword [ebp - 0x1c]
fstp qword [ebp - 0x1c]
fld qword [ebp - 0x1c]
fmul qword [0x4739f8]
fld qword [ebp - 0x1c]
fadd qword [0x4739f0]
faddp st(1)
fstp qword [ebp - 0x1c]
fld qword [ebp - 0x1c]
fadd qword [0x473980]
fadd qword [ebp - 0x1c]
fld qword [ebp - 0x1c]
fmul qword [0x4739e8]
faddp st(1)
fsub qword [0x4739e0]
fstp qword [ebp - 0x1c]
fld qword [ebp - 0x1c]
fmul qword [ebp - 0x1c]
fld qword [ebp - 0x1c]
fadd qword [0x4739d8]
faddp st(1)
fld qword [ebp - 0x1c]
fmul qword [0x4739d0]
fmul qword [ebp - 0x1c]
fsubp st(1)
fadd st(5)
fsub qword [ebp - 0x1c]
fsub qword [0x4739c8]
fadd qword [ebp - 0x1c]
fsub qword [ebp - 0x1c]
fsub qword [ebp - 0x1c]
fstp qword [ebp - 0x1c]
fld qword [ebp - 0x1c]
fdiv st(4)
fadd qword [ebp - 0x1c]
fadd qword [ebp - 0x1c]
fsub qword [ebp - 0x1c]
fstp qword [ebp - 0x1c]
fld qword [ebp - 0x1c]
fsub qword [ebp - 0x1c]
fsub qword [ebp - 0x1c]
fstp qword [ebp - 0x1c]
fld qword [ebp - 0x1c]
fadd qword [ebp - 0x1c]
fstp qword [ebp - 0x1c]
fld qword [ebp - 0x1c]
fmul qword [ebp - 0x1c]
fadd qword [ebp - 0x1c]
fstp qword [ebp - 0x1c]
fld qword [ebp - 0x1c]
mov al, byte [eax + 4]
fsub st(3)
mov byte [ebx], al
inc ebx
dec dword [ebp - 0x20]
fstp qword [ebp - 0x1c]
mov dword [ebp - 0xc], ebx
fld qword [0x4739a0]
fstp qword [ebp - 0x34]
fld qword [0x473998]
fstp qword [ebp - 0x44]
fld qword [0x473990]
fstp qword [ebp - 0x1c]
fld qword [0x473988]
fstp qword [ebp - 0x3c]
fld qword [ebp - 0x1c]
fcomp qword [ebp - 0x34]
fnstsw ax
test ah, 5
jp 0x421e3b
fld qword [ebp - 0x44]
fadd qword [0x473980]
fstp qword [ebp - 0x44]
fld qword [ebp - 0x1c]
fld qword [ebp - 0x1c]
fucompp
fnstsw ax
test ah, 0x44
jp 0x421e3b
fld qword [ebp - 0x3c]
fld qword [ebp - 0x3c]
fucompp
fnstsw ax
test ah, 0x44
jp 0x421e20
fld qword [ebp - 0x1c]
fld qword [ebp - 0x3c]
fmul qword [0x473978]
fsubp st(1)
fstp qword [ebp - 0x34]
fld qword [ebp - 0x44]
fadd qword [0x473970]
fadd qword [ebp - 0x1c]
fadd qword [ebp - 0x34]
fld qword [ebp - 0x34]
fmul qword [0x473968]
fsubp st(1)
fld qword [ebp - 0x1c]
fmul st(3)
fsubp st(1)
fstp qword [ebp - 0x1c]
fld qword [ebp - 0x44]
mov edx, dword [ebp + 0x18]
fcomp qword [ebp - 0x34]
fnstsw ax
test ah, 0x41
jp 0x421e3e
fld qword [ebp - 0x3c]
fsub qword [ebp - 0x1c]
fstp qword [ebp - 0x34]
jmp 0x421e3e
mov edx, dword [ebp + 0x18]
fxch st(2)
fxch st(4)
cmp dword [ebp - 0x20], 0x102
jb 0x421e55
cmp dword [ebp - 0x14], 0xa
jae 0x4214b2
mov eax, dword [esi + 4]
fstp st(3)
sub eax, dword [ebp - 0x14]
fstp st(1)
mov ecx, edi
fstp st(2)
shr ecx, 3
fstp st(0)
cmp ecx, eax
jae 0x421e6e
mov eax, ecx
fld qword [0x4739a0]
add dword [ebp - 0x14], eax
mov ecx, dword [ebp - 0x10]
fstp qword [ebp - 0x34]
fld qword [0x473998]
sub ecx, eax
fstp qword [ebp - 0x44]
shl eax, 3
fld qword [0x473990]
sub edi, eax
fstp qword [ebp - 0x2c]
fld qword [0x473988]
fstp qword [ebp - 0x3c]
fld qword [ebp - 0x2c]
fcomp qword [ebp - 0x34]
fnstsw ax
test ah, 5
jp 0x422042
fld qword [ebp - 0x44]
fadd qword [0x473980]
fstp qword [ebp - 0x44]
fld qword [ebp - 0x2c]
fld qword [ebp - 0x2c]
fucompp
fnstsw ax
test ah, 0x44
jp 0x422042
fld qword [ebp - 0x3c]
fld qword [ebp - 0x3c]
fucompp
fnstsw ax
test ah, 0x44
jp 0x422028
fld qword [ebp - 0x2c]
fld qword [ebp - 0x3c]
fmul qword [0x473978]
fsubp st(1)
fstp qword [ebp - 0x34]
fld qword [ebp - 0x44]
fadd qword [0x473970]
fadd qword [ebp - 0x2c]
fadd qword [ebp - 0x34]
fld qword [ebp - 0x34]
fmul qword [0x473968]
fsubp st(1)
fld qword [ebp - 0x2c]
fmulp st(2)
fsubrp st(1)
fstp qword [ebp - 0x2c]
jmp 0x42202a
mov ecx, dword [esi + 4]
sub ecx, dword [ebp - 0x14]
mov eax, edi
shr eax, 3
cmp eax, ecx
jae 0x421f2d
mov ecx, eax
fxch st(2)
sub dword [ebp - 0x10], ecx
fstp qword [ebp - 0x2c]
push 0xfffffffffffffffd
fld qword [ebp - 0x2c]
pop eax
fsub qword [ebp - 0x2c]
fld qword [ebp - 0x2c]
fmul qword [0x473a00]
fsubp st(1)
faddp st(1)
fadd qword [ebp - 0x2c]
fstp qword [ebp - 0x2c]
fld qword [ebp - 0x2c]
fmul qword [0x4739f8]
fld qword [ebp - 0x2c]
fadd qword [0x4739f0]
faddp st(1)
fstp qword [ebp - 0x2c]
fld qword [ebp - 0x2c]
fadd qword [0x473980]
fadd qword [ebp - 0x2c]
fld qword [ebp - 0x2c]
fmul qword [0x4739e8]
faddp st(1)
fsub qword [0x4739e0]
fstp qword [ebp - 0x2c]
fld qword [ebp - 0x2c]
fmul qword [ebp - 0x2c]
fld qword [ebp - 0x2c]
fadd qword [0x4739d8]
faddp st(1)
fld qword [ebp - 0x2c]
fmul qword [0x4739d0]
fmul qword [ebp - 0x2c]
fsubp st(1)
faddp st(3)
fld qword [ebp - 0x2c]
fsubp st(3)
fxch st(2)
fsub qword [0x4739c8]
fadd qword [ebp - 0x2c]
fsub qword [ebp - 0x2c]
fsub qword [ebp - 0x2c]
fstp qword [ebp - 0x2c]
fdivr qword [ebp - 0x2c]
fadd qword [ebp - 0x2c]
fadd qword [ebp - 0x2c]
fsub qword [ebp - 0x2c]
fstp qword [ebp - 0x2c]
fld qword [ebp - 0x2c]
fsub qword [ebp - 0x2c]
fsub qword [ebp - 0x2c]
fstp qword [ebp - 0x2c]
fld qword [ebp - 0x2c]
fadd qword [ebp - 0x2c]
fstp qword [ebp - 0x2c]
fld qword [ebp - 0x2c]
fmul qword [ebp - 0x2c]
fadd qword [ebp - 0x2c]
fstp qword [ebp - 0x2c]
fsubr qword [ebp - 0x2c]
fstp qword [ebp - 0x2c]
mov edx, dword [ebp + 0x18]
mov ebx, dword [ebp - 8]
mov dword [edx + 0x1c], ebx
mov ebx, ecx
add ecx, dword [ebp - 0x14]
shl ebx, 3
sub edi, ebx
mov dword [edx + 0x18], edi
mov dword [esi + 4], ecx
mov ecx, dword [ebp - 0x10]
mov edi, ecx
sub edi, dword [esi]
mov dword [esi], ecx
mov ecx, dword [ebp - 0xc]
add dword [esi + 8], edi
mov dword [edx + 0x30], ecx
jmp 0x422114
fstp st(0)
fld qword [ebp - 0x44]
fcomp qword [ebp - 0x34]
fnstsw ax
test ah, 0x41
jp 0x422044
fld qword [ebp - 0x3c]
fsub qword [ebp - 0x2c]
fstp qword [ebp - 0x34]
jmp 0x422044
fstp st(0)
mov eax, dword [ebp - 8]
mov dword [edx + 0x1c], eax
mov eax, dword [ebp - 0x14]
mov dword [edx + 0x18], edi
mov dword [esi + 4], eax
mov eax, ecx
sub eax, dword [esi]
mov dword [esi], ecx
add dword [esi + 8], eax
mov dword [edx + 0x30], ebx
xor eax, eax
jmp 0x422114
fstp st(3)
fstp st(1)
fstp st(1)
fstp st(0)
fstp st(0)
test cl, 0x20
je 0x422091
mov ecx, dword [esi + 4]
sub ecx, dword [ebp - 0x14]
mov eax, edi
shr eax, 3
cmp eax, ecx
jae 0x422086
mov ecx, eax
sub dword [ebp - 0x10], ecx
xor eax, eax
inc eax
jmp 0x421ff8
mov eax, dword [esi + 4]
sub eax, dword [ebp - 0x14]
mov ecx, edi
shr ecx, 3
cmp ecx, eax
jae 0x4220a2
mov eax, ecx
fld qword [0x473958]
mov ecx, dword [ebp + 0x18]
mov ebx, dword [ebp - 8]
fstp qword [ebp - 0x4c]
fld qword [0x473950]
mov edx, dword [ebp - 0x10]
fstp qword [ebp - 0x4c]
sub edx, eax
fld qword [0x473948]
push 0xfffffffffffffffd
fstp qword [ebp - 0x4c]
fld qword [0x473940]
fstp qword [ebp - 0x4c]
fld qword [0x473938]
fstp qword [ebp - 0x4c]
fld qword [0x473930]
fstp qword [ebp - 0x44]
fld qword [ebp - 0x4c]
mov dword [ecx + 0x1c], ebx
fadd qword [0x473928]
mov ebx, eax
add eax, dword [ebp - 0x14]
shl ebx, 3
sub edi, ebx
fstp qword [ebp - 0x4c]
mov dword [ecx + 0x18], edi
mov dword [esi + 4], eax
mov eax, edx
sub eax, dword [esi]
mov dword [esi], edx
add dword [esi + 8], eax
mov eax, dword [ebp - 0xc]
mov dword [ecx + 0x30], eax
pop eax
pop edi
pop ebx
leave
ret