Function at 0x420947
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x5c
mov eax, dword [esi]
mov ecx, dword [edi + 0x30]
mov dword [ebp - 0x14], eax
mov eax, dword [esi + 4]
mov dword [ebp - 0x10], eax
mov eax, dword [edi + 0x1c]
mov dword [ebp - 4], eax
mov eax, dword [edi + 0x2c]
push ebx
mov ebx, dword [edi + 0x18]
mov dword [ebp - 8], ecx
cmp ecx, eax
jae 0x420974
sub eax, ecx
dec eax
jmp 0x420979
mov eax, dword [edi + 0x28]
sub eax, ecx
mov dword [ebp - 0x18], eax
fld qword [0x474a48]
push 0x1c
pop ecx
mov dword [ebp - 0xc], ecx
add dword [ebp - 0xc], 0xfffffff1
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 0xc]
imul eax, edx
mov edx, dword [ebp - 0xc]
imul eax, eax, 0x51
sub eax, edx
add eax, dword [ebp - 0xc]
add eax, dword [ebp - 0xc]
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0xc]
add eax, dword [ebp - 0xc]
mov dword [ebp - 0xc], eax
add dword [ebp - 0xc], 0x4e
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 0xc]
sub eax, edx
mov edx, dword [ebp - 0xc]
sub eax, edx
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0xc]
imul eax, eax, 0x43
add eax, dword [ebp - 0xc]
mov dword [ebp - 0xc], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax*4 + 0x45b098]
fst qword [ebp - 0x58]
fld qword [0x474a40]
mov dword [ebp - 0x4c], eax
fst qword [ebp - 0x48]
fld qword [0x474a38]
fst qword [ebp - 0x38]
fld qword [0x474a30]
fst qword [ebp - 0x38]
fld qword [0x474a28]
fstp qword [ebp - 0x40]
fld qword [ebp - 0x40]
fld qword [ebp - 0x58]
fucompp
fnstsw ax
fld qword [0x474a20]
test ah, 0x44
jnp 0x420a42
fld qword [ebp - 0x58]
fadd st(4)
fstp qword [ebp - 0x38]
fld qword [ebp - 0x48]
fmul qword [0x474a18]
fmul qword [ebp - 0x58]
fld qword [ebp - 0x48]
fmul st(2)
fsubp st(1)
fstp qword [ebp - 0x38]
fld qword [ebp - 0x40]
fmul qword [0x474a10]
fstp qword [ebp - 0x58]
mov eax, dword [ebp + 0xc]
mov eax, dword [eax*4 + 0x45b098]
mov dword [ebp + 8], ecx
add dword [ebp + 8], 0xfffffff1
mov dword [ebp - 0x54], eax
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 8]
imul eax, ecx
mov ecx, dword [ebp + 8]
imul eax, eax, 0x51
sub eax, ecx
add eax, dword [ebp + 8]
add eax, dword [ebp + 8]
mov dword [ebp + 8], eax
mov eax, dword [ebp + 8]
add eax, dword [ebp + 8]
mov dword [ebp + 8], eax
add dword [ebp + 8], 0x4e
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 8]
sub eax, ecx
mov ecx, dword [ebp + 8]
sub eax, ecx
mov dword [ebp + 8], eax
mov eax, dword [ebp + 8]
imul eax, eax, 0x43
add eax, dword [ebp + 8]
mov dword [ebp + 8], eax
jmp 0x420abf
fxch st(3)
fxch st(4)
fxch st(2)
fxch st(3)
fxch st(1)
fxch st(2)
jmp 0x420abf
mov eax, dword [ebp - 0x14]
movzx eax, byte [eax]
dec dword [ebp - 0x10]
mov ecx, ebx
shl eax, cl
or dword [ebp - 4], eax
inc dword [ebp - 0x14]
add ebx, 8
cmp ebx, 0x14
jb 0x420aa9
fxch st(4)
fst qword [ebp - 0x48]
fxch st(3)
fst qword [ebp - 0x40]
fxch st(2)
fst qword [ebp - 0x30]
fxch st(1)
fst qword [ebp - 0x30]
fld qword [0x474a28]
fst qword [ebp - 0x38]
fld qword [ebp - 0x38]
fld qword [ebp - 0x48]
fucompp
fnstsw ax
test ah, 0x44
jnp 0x420b1a
fld qword [ebp - 0x48]
fadd st(4)
fstp qword [ebp - 0x30]
fld qword [ebp - 0x40]
fmul qword [0x474a18]
fmul qword [ebp - 0x48]
fld qword [ebp - 0x40]
fmul st(7)
fsubp st(1)
fstp qword [ebp - 0x30]
fld qword [ebp - 0x38]
fmul qword [0x474a10]
fstp qword [ebp - 0x48]
mov eax, dword [ebp - 0x4c]
and eax, dword [ebp - 4]
mov ecx, dword [ebp + 0x10]
lea edx, [ecx + eax*8]
movzx eax, byte [edx]
mov dword [ebp - 0xc], edx
mov dword [ebp + 8], eax
test eax, eax
jne 0x420b63
movzx ecx, byte [edx + 1]
fstp st(0)
movzx eax, byte [edx + 1]
shr dword [ebp - 4], cl
mov ecx, dword [ebp - 8]
sub ebx, eax
mov al, byte [edx + 4]
inc dword [ebp - 8]
dec dword [ebp - 0x18]
mov byte [ecx], al
jmp 0x421279
fxch st(3)
fxch st(4)
fxch st(2)
fxch st(3)
fxch st(1)
fxch st(2)
fxch st(1)
movzx eax, byte [edx + 1]
fxch st(4)
movzx ecx, byte [edx + 1]
fst qword [ebp - 0x48]
shr dword [ebp - 4], cl
fxch st(3)
fst qword [ebp - 0x40]
sub ebx, eax
fxch st(2)
fst qword [ebp - 0x30]
fxch st(1)
fst qword [ebp - 0x30]
fxch st(4)
fst qword [ebp - 0x38]
fld qword [ebp - 0x38]
fld qword [ebp - 0x48]
fucompp
fnstsw ax
test ah, 0x44
jnp 0x420bc2
fld qword [ebp - 0x48]
fadd st(3)
fstp qword [ebp - 0x30]
fld qword [ebp - 0x40]
fmul qword [0x474a18]
fmul qword [ebp - 0x48]
fld qword [ebp - 0x40]
fmul st(7)
fsubp st(1)
fstp qword [ebp - 0x30]
fld qword [ebp - 0x38]
fmul qword [0x474a10]
fstp qword [ebp - 0x48]
mov eax, dword [ebp + 8]
test al, 0x10
jne 0x420bf7
test al, 0x40
jne 0x421379
mov eax, dword [eax*4 + 0x45b098]
and eax, dword [ebp - 4]
add eax, dword [edx + 4]
lea edx, [edx + eax*8]
movzx eax, byte [edx]
mov dword [ebp - 0xc], edx
mov dword [ebp + 8], eax
test eax, eax
je 0x421252
jmp 0x420b55
mov dword [ebp + 0xc], 0x51
fstp st(0)
and eax, 0xf
mov dword [ebp - 0x24], 0x19
mov dword [ebp + 0xc], 0x3c
mov dword [ebp + 8], eax
mov dword [ebp - 0x2c], 0x20
mov eax, dword [ebp + 0xc]
cdq
push 0x27
pop ecx
idiv ecx
mov ecx, dword [ebp + 0xc]
sub eax, ecx
add eax, dword [ebp - 0x2c]
mov dword [ebp + 0xc], eax
mov eax, dword [ebp - 0x24]
sub eax, 0x31
mov dword [ebp + 0xc], eax
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x24]
cmp ecx, eax
jl 0x420c4b
mov eax, dword [ebp + 0xc]
add eax, 0x37
mov dword [ebp - 0x2c], eax
mov ecx, dword [ebp + 8]
mov eax, dword [ecx*4 + 0x45b098]
and eax, dword [ebp - 4]
mov edx, dword [ebp - 0xc]
add eax, dword [edx + 4]
shr dword [ebp - 4], cl
mov dword [ebp + 0xc], eax
sub ebx, ecx
jmp 0x420c7e
mov eax, dword [ebp - 0x14]
movzx eax, byte [eax]
dec dword [ebp - 0x10]
mov ecx, ebx
shl eax, cl
or dword [ebp - 4], eax
inc dword [ebp - 0x14]
add ebx, 8
cmp ebx, 0xf
jb 0x420c68
mov eax, dword [ebp - 0x54]
and eax, dword [ebp - 4]
mov ecx, dword [ebp + 0x14]
lea edx, [ecx + eax*8]
movzx eax, byte [edx]
movzx ecx, byte [edx + 1]
shr dword [ebp - 4], cl
mov dword [ebp + 8], eax
movzx eax, byte [edx + 1]
mov dword [ebp - 0xc], edx
sub ebx, eax
jmp 0x420cd4
mov eax, dword [ebp + 8]
test al, 0x40
jne 0x4212e2
mov eax, dword [eax*4 + 0x45b098]
and eax, dword [ebp - 4]
add eax, dword [edx + 4]
lea edx, [edx + eax*8]
movzx ecx, byte [edx + 1]
movzx eax, byte [edx]
shr dword [ebp - 4], cl
mov dword [ebp - 0xc], edx
mov dword [ebp + 8], eax
sub ebx, ecx
test byte [ebp + 8], 0x10
je 0x420ca7
and dword [ebp + 8], 0xf
mov dword [ebp - 0x20], 0x29
mov dword [ebp - 0x44], 0x3f
mov dword [ebp - 0x34], 5
mov dword [ebp - 0x24], 0x5d
mov dword [ebp - 0x2c], 0x2c
mov dword [ebp - 0x1c], 0x2a
mov dword [ebp - 0x3c], 0x5a
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x20]
cmp eax, ecx
jg 0x420d8d
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x44]
imul eax, ecx
mov ecx, dword [ebp - 0x2c]
imul ecx, ecx, 0x44
sub ecx, eax
mov dword [ebp - 0x34], ecx
mov eax, dword [ebp - 0x3c]
imul eax, eax, 0x4f
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x2c]
cdq
push 0x63
pop ecx
idiv ecx
mov ecx, dword [ebp - 0x1c]
push 0xfffffffffffffffa
imul eax, ecx
pop ecx
sub ecx, eax
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x24]
imul eax, edx
sub ecx, eax
mov eax, dword [ebp - 0x1c]
sub ecx, eax
mov eax, dword [ebp - 0x1c]
sub ecx, eax
add ecx, dword [ebp - 0x20]
mov edx, dword [ebp - 0xc]
mov dword [ebp - 0x1c], ecx
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x24]
imul eax, eax, 6
imul ecx, ecx, 5
sub eax, ecx
mov ecx, dword [ebp - 0x20]
sub eax, ecx
mov ecx, dword [ebp - 0x2c]
sub eax, ecx
mov ecx, dword [ebp - 0x24]
lea eax, [eax + ecx - 0x5d]
add eax, dword [ebp - 0x20]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x24]
imul eax, eax, 0x594
sub ecx, eax
add ecx, dword [ebp - 0x3c]
mov dword [ebp - 0x44], ecx
jmp 0x420db9
mov eax, dword [ebp - 0x14]
movzx eax, byte [eax]
dec dword [ebp - 0x10]
mov ecx, ebx
shl eax, cl
or dword [ebp - 4], eax
inc dword [ebp - 0x14]
add ebx, 8
cmp ebx, dword [ebp + 8]
jb 0x420da3
fld qword [0x4749a8]
fstp qword [ebp - 0x40]
fld qword [0x4749a0]
fstp qword [ebp - 0x48]
fld qword [0x474998]
fstp qword [ebp - 0x38]
fld qword [ebp - 0x38]
fmul qword [ebp - 0x48]
fdiv qword [0x474990]
fld qword [ebp - 0x40]
fdiv qword [0x474988]
fmul qword [ebp - 0x40]
faddp st(1)
fsub qword [0x474980]
fstp qword [ebp - 0x40]
fld qword [ebp - 0x48]
fmul qword [ebp - 0x48]
fsub qword [ebp - 0x38]
fstp qword [ebp - 0x48]
fld qword [ebp - 0x38]
fcomp qword [ebp - 0x38]
fnstsw ax
test ah, 0x41
jne 0x420e60
fld qword [ebp - 0x48]
fadd qword [ebp - 0x48]
fadd qword [ebp - 0x40]
fsub qword [ebp - 0x40]
fadd qword [0x474978]
fsub qword [ebp - 0x38]
fstp qword [ebp - 0x48]
fld qword [ebp - 0x48]
fadd qword [0x474970]
fstp qword [ebp - 0x40]
fld qword [ebp - 0x40]
fld qword [ebp - 0x40]
fucompp
fnstsw ax
test ah, 0x44
jnp 0x420e60
fld qword [ebp - 0x48]
fld qword [ebp - 0x48]
fucompp
fnstsw ax
test ah, 0x44
jp 0x420e60
fld qword [ebp - 0x38]
fmul qword [ebp - 0x48]
fstp qword [ebp - 0x38]
mov ecx, dword [ebp + 8]
mov eax, dword [ecx*4 + 0x45b098]
and eax, dword [ebp - 4]
shr dword [ebp - 4], cl
add eax, dword [edx + 4]
mov dword [ebp - 0x44], 0x55
mov dword [ebp - 0x2c], 0x3d
mov edx, dword [ebp - 0x2c]
sub ebx, ecx
mov ecx, dword [ebp + 0xc]
sub dword [ebp - 0x18], ecx
sub edx, 0x3c
mov dword [ebp - 0x44], edx
mov edx, dword [ebp - 8]
add dword [ebp - 0x2c], 0xffffff9d
mov ecx, edx
sub ecx, eax
mov eax, dword [edi + 0x24]
mov dword [ebp - 0x3c], ebx
cmp ecx, eax
jae 0x421171
mov edx, dword [edi + 0x28]
mov dword [ebp - 0x44], 0x55
sub edx, eax
mov dword [ebp + 8], 0x3d
mov eax, dword [ebp + 8]
sub eax, 0x3c
mov dword [ebp - 0x44], eax
add dword [ebp + 8], 0xffffff9d
mov eax, dword [edi + 0x24]
add ecx, edx
cmp ecx, eax
jb 0x420eab
mov eax, dword [edi + 0x28]
sub eax, ecx
mov dword [ebp + 8], eax
cmp dword [ebp + 0xc], eax
jbe 0x4210d8
fld qword [0x474a08]
sub dword [ebp + 0xc], eax
fstp qword [ebp - 0x38]
sub ecx, dword [ebp - 8]
fld qword [0x474a00]
fstp qword [ebp - 0x48]
mov dword [ebp - 0xc], ecx
fld qword [0x4749f8]
fst qword [ebp - 0x48]
fld qword [0x4749f0]
fstp qword [ebp - 0x48]
fstp qword [ebp - 0x40]
fld qword [0x4749e8]
fstp qword [ebp - 0x48]
fld qword [0x4749e0]
fstp qword [ebp - 0x30]
fld qword [0x4749d8]
fstp qword [ebp - 0x30]
fld qword [ebp - 0x48]
fld qword [ebp - 0x40]
fmul qword [0x4749d0]
fsubp st(1)
fsub qword [ebp - 0x38]
fadd qword [ebp - 0x48]
fstp qword [ebp - 0x48]
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 0xc]
mov dl, byte [edx + ecx]
mov byte [ecx], dl
mov dword [ebp - 0x24], 0x29
mov dword [ebp - 0x34], 0x3f
mov dword [ebp - 0x44], 5
mov dword [ebp - 0x20], 0x5d
mov dword [ebp - 0x2c], 0x2c
inc ecx
mov dword [ebp - 0x1c], 0x2a
mov dword [ebp - 0x3c], 0x5a
mov dword [ebp - 8], ecx
mov ecx, dword [ebp - 0x24]
mov edx, dword [ebp - 0x24]
cmp ecx, edx
jg 0x421005
mov eax, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x34]
imul eax, ecx
mov ecx, dword [ebp - 0x2c]
imul ecx, ecx, 0x44
sub ecx, eax
mov dword [ebp - 0x44], ecx
mov eax, dword [ebp - 0x3c]
imul eax, eax, 0x4f
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x2c]
cdq
push 0x63
pop ecx
idiv ecx
mov ecx, dword [ebp - 0x1c]
push 0xfffffffffffffffa
imul eax, ecx
pop ecx
sub ecx, eax
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x20]
imul eax, edx
sub ecx, eax
mov eax, dword [ebp - 0x1c]
sub ecx, eax
mov eax, dword [ebp - 0x1c]
sub ecx, eax
add ecx, dword [ebp - 0x24]
mov dword [ebp - 0x1c], ecx
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x20]
imul eax, eax, 6
imul ecx, ecx, 5
sub eax, ecx
mov ecx, dword [ebp - 0x24]
sub eax, ecx
mov ecx, dword [ebp - 0x2c]
sub eax, ecx
mov ecx, dword [ebp - 0x20]
lea eax, [eax + ecx - 0x5d]
add eax, dword [ebp - 0x24]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebp - 0x20]
imul ecx, ecx, 0x594
sub edx, ecx
add edx, dword [ebp - 0x3c]
dec eax
mov dword [ebp - 0x34], edx
mov dword [ebp + 8], eax
jne 0x420f47
mov eax, dword [edi + 0x24]
mov cl, byte [eax]
fld qword [0x4749c8]
mov edx, dword [ebp - 8]
mov byte [edx], cl
fstp qword [ebp - 0x48]
fld qword [ebp - 0x48]
inc dword [ebp - 8]
fmul st(5)
inc eax
dec dword [ebp + 0xc]
fstp qword [ebp - 0x48]
fld qword [ebp - 0x48]
fsub qword [0x4749c0]
fadd qword [ebp - 0x48]
fsub qword [ebp - 0x48]
fsub qword [ebp - 0x48]
fstp qword [ebp - 0x48]
fld qword [ebp - 0x48]
fadd qword [0x4749b8]
fstp qword [ebp - 0x48]
fld qword [ebp - 0x48]
fadd qword [ebp - 0x48]
fstp qword [ebp - 0x48]
fld qword [ebp - 0x48]
fadd qword [ebp - 0x48]
fstp qword [ebp - 0x48]
fld qword [ebp - 0x48]
fadd qword [0x4749b0]
fstp qword [ebp - 0x48]
jne 0x421026
mov dword [ebp + 8], 0x51
mov dword [ebp - 0x44], 0x19
mov dword [ebp + 8], 0x3c
mov dword [ebp + 0xc], 0x20
mov eax, dword [ebp + 8]
cdq
push 0x27
pop ecx
idiv ecx
mov ecx, dword [ebp + 8]
sub eax, ecx
add eax, dword [ebp + 0xc]
mov dword [ebp + 8], eax
mov eax, dword [ebp - 0x44]
sub eax, 0x31
mov dword [ebp + 8], eax
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp - 0x44]
cmp ecx, eax
jl 0x421151
mov eax, dword [ebp + 8]
add eax, 0x37
mov dword [ebp + 0xc], eax
jmp 0x421151
mov al, byte [ecx]
mov edx, dword [ebp - 8]
mov byte [edx], al
mov dword [ebp + 8], 0x51
mov dword [ebp - 0x44], 0x19
mov dword [ebp + 8], 0x3c
mov dword [ebp - 0x2c], 0x20
mov eax, dword [ebp + 8]
cdq
push 0x27
pop ebx
idiv ebx
mov edx, dword [ebp + 8]
inc dword [ebp - 8]
dec dword [ebp + 0xc]
sub eax, edx
add eax, dword [ebp - 0x2c]
mov dword [ebp + 8], eax
mov eax, dword [ebp - 0x44]
sub eax, 0x31
mov dword [ebp + 8], eax
mov eax, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x44]
cmp edx, eax
jl 0x421131
mov eax, dword [ebp + 8]
add eax, 0x37
mov dword [ebp - 0x2c], eax
mov dl, byte [ecx + 1]
mov eax, dword [ebp - 8]
mov byte [eax], dl
inc eax
add ecx, 2
dec dword [ebp + 0xc]
mov dl, byte [ecx]
mov byte [eax], dl
inc eax
inc ecx
dec dword [ebp + 0xc]
jne 0x421140
mov ebx, dword [ebp - 0x3c]
mov dword [ebp - 8], eax
mov dword [ebp + 0xc], 0x55
mov dword [ebp + 8], 0x3d
mov eax, dword [ebp + 8]
sub eax, 0x3c
mov dword [ebp + 0xc], eax
add dword [ebp + 8], 0xffffff9d
jmp 0x42126f
mov al, byte [ecx]
fld qword [0x4749c8]
mov byte [edx], al
mov al, byte [ecx + 1]
mov byte [edx + 1], al
fstp qword [ebp - 0x48]
fld qword [ebp - 0x48]
add edx, 2
fmul st(5)
add ecx, 2
sub dword [ebp + 0xc], 2
fstp qword [ebp - 0x48]
fld qword [ebp - 0x48]
fsub qword [0x4749c0]
fadd qword [ebp - 0x48]
fsub qword [ebp - 0x48]
fsub qword [ebp - 0x48]
fstp qword [ebp - 0x48]
fld qword [ebp - 0x48]
fadd qword [0x4749b8]
fstp qword [ebp - 0x48]
fld qword [ebp - 0x48]
fadd qword [ebp - 0x48]
fstp qword [ebp - 0x48]
fld qword [ebp - 0x48]
fadd qword [ebp - 0x48]
fstp qword [ebp - 0x48]
fld qword [ebp - 0x48]
fadd qword [0x4749b0]
fstp qword [ebp - 0x48]
jmp 0x4211da
mov edx, dword [ebp - 8]
mov al, byte [ecx]
mov byte [edx], al
mov dword [ebp + 8], 0x22
mov eax, dword [ebp + 8]
inc edx
mov dword [ebp - 8], edx
cdq
push 0x13
pop ebx
idiv ebx
mov edx, dword [ebp + 8]
push 0x2c
inc ecx
imul eax, edx
mov dword [ebp + 8], eax
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 8]
imul eax, edx
mov dword [ebp + 8], eax
mov eax, dword [ebp + 8]
pop edx
sub edx, eax
mov eax, dword [ebp + 8]
sub edx, eax
mov eax, dword [ebp + 8]
sub edx, eax
add edx, dword [ebp + 8]
add edx, dword [ebp + 8]
add edx, dword [ebp + 8]
mov dword [ebp + 8], edx
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 8]
imul eax, eax, 0x62
sub eax, edx
mov dword [ebp + 8], eax
mov eax, dword [ebp + 8]
imul eax, eax, 0x14
mov dword [ebp + 8], eax
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 8]
sub eax, edx
dec dword [ebp + 0xc]
mov dword [ebp + 8], eax
jne 0x4211d7
mov ebx, dword [ebp - 0x3c]
jmp 0x42126f
movzx ecx, byte [edx + 1]
fstp st(0)
movzx eax, byte [edx + 1]
shr dword [ebp - 4], cl
mov ecx, dword [ebp - 8]
sub ebx, eax
mov al, byte [edx + 4]
inc dword [ebp - 8]
dec dword [ebp - 0x18]
mov byte [ecx], al
fxch st(2)
fxch st(3)
fxch st(1)
fxch st(2)
fxch st(1)
cmp dword [ebp - 0x18], 0x102
jb 0x42128c
cmp dword [ebp - 0x10], 0xa
jae 0x420a9b
fxch st(3)
fstp qword [ebp - 0x58]
fxch st(1)
fst qword [ebp - 0x50]
fxch st(1)
fstp qword [ebp - 0x40]
fxch st(1)
fstp qword [ebp - 0x40]
fld qword [0x474a28]
fstp qword [ebp - 0x48]
fld qword [ebp - 0x48]
fld qword [ebp - 0x58]
fucompp
fnstsw ax
test ah, 0x44
jnp 0x421336
fadd qword [ebp - 0x58]
fstp qword [ebp - 0x40]
fld qword [ebp - 0x50]
fmul qword [0x474a18]
fmul qword [ebp - 0x58]
fld qword [ebp - 0x50]
fmulp st(2)
fsubrp st(1)
fstp qword [ebp - 0x40]
fld qword [ebp - 0x48]
fmul qword [0x474a10]
fstp qword [ebp - 0x58]
jmp 0x42133a
mov ecx, dword [esi + 4]
fstp st(1)
sub ecx, dword [ebp - 0x10]
fstp st(3)
fstp st(0)
mov eax, ebx
shr eax, 3
fstp st(1)
fstp st(0)
cmp eax, ecx
jae 0x4212fd
mov ecx, eax
mov dword [ebp + 8], 0xfffffffd
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x14]
mov dword [edi + 0x1c], eax
mov eax, ecx
shl eax, 3
sub ebx, eax
sub edx, ecx
add ecx, dword [ebp - 0x10]
mov dword [edi + 0x18], ebx
mov eax, edx
sub eax, dword [esi]
mov dword [esi + 4], ecx
add dword [esi + 8], eax
mov eax, dword [ebp - 8]
mov dword [esi], edx
mov dword [edi + 0x30], eax
mov eax, dword [ebp + 8]
jmp 0x4213e4
fstp st(0)
fstp st(0)
mov eax, dword [esi + 4]
sub eax, dword [ebp - 0x10]
mov ecx, ebx
shr ecx, 3
cmp ecx, eax
jae 0x42134b
mov eax, ecx
mov edx, dword [ebp - 4]
mov ecx, dword [ebp - 0x14]
mov dword [edi + 0x1c], edx
mov edx, eax
sub ecx, eax
add eax, dword [ebp - 0x10]
shl edx, 3
sub ebx, edx
mov dword [edi + 0x18], ebx
mov dword [esi + 4], eax
mov eax, ecx
sub eax, dword [esi]
mov dword [esi], ecx
add dword [esi + 8], eax
mov eax, dword [ebp - 8]
mov dword [edi + 0x30], eax
xor eax, eax
jmp 0x4213e4
fstp st(2)
fstp st(4)
fstp st(1)
fstp st(2)
fstp st(0)
fstp st(0)
test al, 0x20
je 0x4213a6
mov ecx, dword [esi + 4]
sub ecx, dword [ebp - 0x10]
mov eax, ebx
shr eax, 3
cmp eax, ecx
jae 0x42139a
mov ecx, eax
mov dword [ebp + 8], 1
jmp 0x421304
mov eax, dword [esi + 4]
sub eax, dword [ebp - 0x10]
mov ecx, ebx
shr ecx, 3
cmp ecx, eax
jae 0x4213b7
mov eax, ecx
mov edx, dword [ebp - 4]
mov ecx, dword [ebp - 0x14]
mov dword [edi + 0x1c], edx
mov edx, eax
sub ecx, eax
add eax, dword [ebp - 0x10]
shl edx, 3
sub ebx, edx
mov dword [edi + 0x18], ebx
mov dword [esi + 4], eax
mov eax, ecx
sub eax, dword [esi]
mov dword [esi], ecx
add dword [esi + 8], eax
mov eax, dword [ebp - 8]
push 0xfffffffffffffffd
mov dword [edi + 0x30], eax
pop eax
pop ebx
leave
ret